@bottobot/td-mcp
Version:
TouchDesigner Documentation MCP Server v2.3 - Pure MCP server for VS Code/Codium with comprehensive operator documentation for 629 operators + 7 tutorials across all categories (TOP, CHOP, SOP, DAT, MAT, COMP, POP). Features experimental POP operators wit
1,367 lines • 83.9 kB
JSON
{
"id": "texture",
"name": "Texture",
"displayName": "Texture",
"category": "SOP",
"subcategory": "Generators",
"version": "",
"lastUpdated": "2025-08-08T00:37:54.524Z",
"sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Texture_SOP.htm",
"url": "",
"description": "The Texture SOP assigns texture UV and W coordinates to the Source geometry for use in texture and bump mapping. It generates multi-layers of texture coordinates.",
"summary": "The Texture SOP assigns texture UV and W coordinates to the Source geometry for use in texture and bump mapping. It generates multi-layers of texture coordinates.",
"details": "",
"usage": "",
"tips": [],
"warnings": [],
"parameters": [
{
"id": null,
"name": "Primitive Group",
"label": "Primitive Group",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe Texture assigns texture UV and W coordinates to the Source geometry for use in texture and bump mapping. It generates multi-layers of texture coordinates.\ntextureSOP_Class\n\nContents\n \n \n \n \n \n \n \n \n \n\n\n\n\n\nNOTE: the following discussing pertains only to face and hull primitives.\nIf a texture type requires fixing of seams and the texture is applied to vertices, the wrapped primitives are unrolled before computing the texture coordinates. Unrolling a wrapped primitive turns it into an open primitive whose new vertices use the same points as the vertices they have been uniqued from. Thus, unrolling does not change the point count, nor does it allow cracks to appear further down the road. Explicit unrolling, using the Primitive SOP, is not required.\nThe seam fixing is done after computing the texture coordinates. It is required whether textures are applied to vertices or points, and it's done in u, v, or both.\nThe following texture types require fixing of seams:\n\n - seams fixed in u.\n - seams fixed in u and v.\n - seams fixed in u and v.\n: , , and - seams fixed in u and v.Note: When the projection type is Cylindrical or Polar, closed meshes, Bzier & NURBS surfaces will be opened. At least one row/column of vertices will be added (possibly more for NURBS<). This is to prevent poor interpolation of texture coordinates at the seam of the join.\n\n\n group - If there are input primitive groups, specifying a group name in this field will cause this to act only upon the group specified. Does not work with point or vertex groups. Accepts patterns, as described in Pattern Matching.\n\n\n\n\n\n texlayer - If the geometry has multiple textures layers applied to it, this parameter determines which layer of UV coordinates this Texture will effect.\n\n\n\t\t\n type - - The , , and texturing methods accept spline curves as well as polygons.\t\nWhen using one of the spline-based methods, specifying a paste hierarchy in the field will propagate the computation of texture coordinates to all of its nodes. Projection methods will typically yield smoother texture continuity between pasted surfaces than any of the spline methods. Sometimes it helps ensuring that pasted features are Chord-length parameterized with the Basis SOP.\n\n\n texture - Direct projection from . xyzposition - The XYZ position of the vertices will be copied into the UVW values. equirectangularin - Applies corrdinates to properly apply an equirectangular texture map to the inside of an object. Useful for skyboxes for example. equirectangularout - Applies corrdinates to properly apply an equirectangular texture map to the outside of an object. cylin - Wrap cylindrically in direction. rowcol - For geometry constructed as a mesh (Grid, Sphere, Tube, Skin, and Sweep). The U coordinates are placed along rows, and the V coordinates along columns. This is good for texturing curved meshes such as car fenders where you cannot project from any one axis. face - Maps a copy of the texture onto every face. You should make points unique using a Facet SOP, before using this function in the Texture . The map is graphically projected to each face along its normal, so the texture is oriented properly for each face. However, the map is not scaled to fit each polygon, nor is it distorted by the shape of each polygon. If the geometry changes in size in object space, the texture does not \"stick\" to the geometry. It is best suited to texturing objects that represent chunks of rock and brick, as the textures will likely not match at the edges between polygons. modify - If the Source already has texture UV coordinates, they are maintained. You can offset and scale them, however, using and . suniform - This projection type operates only on NURBS and Bzier surfaces. It samples the domain space (i.e. the basis) of each surface uniformly in U and V and assigns those (u,v) values as texture coordinates to the surface points or vertices. To ensure continuity between the texture space of adjacent surfaces insert a Basis SOP before the Texture and toggle on to merge the spline bases in U and/or V. saverage - Stores the average of degree successive knots into the texture attribute. These averages are known as Greville points. This method and are recommended for pasted surfaces. sarclen - This method is similar to the method since it relies on the underlying spline basis when computing the texture coordinates. Both methods generate texture coordinates in the same range, bounded by the minimum and maximum knot values. The difference between the two spline methods lies in the spacing between successive texture coordinates. The uniform method samples the parameter space uniformly. The method chooses the texture coordinates based on surface arc-lengths.Since the method relies heavily on the parametric fabric of the surface, the resulting texture will tend to squash and stretch given uneven surface parameterizations. The method reduces this effect by relating the texture space directly to the world space of the surface, while ensuring that the size and origin of the generated texture space coincide with those of the underlying domain.\n\n edgelength - Applies to hulls + faces (NURBs/Bezier/). persp - The texture coordinates are assigned so that the world space of the object can be textured to fit the projection of the camera exactly. If any points are behind the near clipping plane or beyond the far clipping plane, the texture coordinates (0, 0, 0) are assigned. Note: Unless a Custom Projection matrix is used in the Camera COMP, the aspect ratio of the projection is assumed to be 1:1. You may need to scale the UVs to match the aspect ratio of your render. equiazimuth - Applies coordinates for using 180 degree Fish Eye maps. equiazimuth360 - Applies coordinates for using 360 degree Fish Eye maps.\n\t\t\n axis - - Axis to project along, or projection method from splines. X, Y, or Z axes.\n\n x - y - z -\n\t\t\n camera - This is used when the Texture Type is selected. The menu is used to select which light or camera to project the perspective coordinates from.\n\n\n\t\t\n coord - - Select to apply texture coordinates to their Natural Location, textures, or textures.\t\nWhen is selected, the UV's will be applied to the verticies when using , , , and texture types. , , and will always generate point UV's when you choose .\t\t\t\nNatural Location will also create vertex uvs when creating new texture layers, if a vertex uv already exists for layer 0.\t\t\t\nIIf the primitive is open in both directions like a grid or a surface (so that the ends do not touch), then the advantage of vertex UV's does not apply since there are no matched seams on the single surface to worry about.\t\t\t\nUsing vertex UVs gives you unique points at the closed seam whereas point UVs are shared at seams and are, by default given a value of 0 for either U or V depending on the closed direction of the surface. If you want to make a closed surface open, simply insert a Carve SOP in the chain and place a single carve in the surface of the direction that the surface is closed.\n\n\n natural - point - vertex -\n\t\t\n s - - Scales the texture coordinates a specific amount.\n\nsu -sv -sw -\n\t\t\n offset - - Offsets the texture coordinates a specific amount.\n\noffsetu -offsetv -offsetw -\n\t\t\n angle - Rotates the texture coordinates the specified value.\t\nTip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface (using a Basis SOP) between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.\n\n\n\t\t\n fixseams - Attempts to correct texture continuity at face seams.\n\n\n\n\n\nAdd further transformations to the texture coordinate space.\n\n xord - - Sets the overall transform order for the transformations. The transform order determines the order in which transformations take place. Depending on the order, you can achieve different results using the exact same values. Choose the appropriate order from the menu.\n\n srt - str - rst - rts - tsr - trs -\n\t\t\n rord - - Sets the order of the rotations within the overall transform order.\n\n xyz - xzy - yxz - yzx - zxy - zyx -\n\t\t\n t - - These three fields move the texture coordinates in the three axes.\n\n tx - ty - tz -\n\t\t\n r - - These three fields rotate the texture coordinates in the three axes.\n\n rx - ry - rz -\n\t\t\n scaletwo - - These three fields scale the texture coordinates in the three axes.\n\n scaletwox - scaletwoy - scaletwoz -\n\t\t\n p - - The pivot point for the transformations (not the same as the pivot point in the pivot channels). The pivot point parameters allow you to define the point about which the texture coordinates scale and rotate. Altering the pivot point produces different results depending on the transformation performed.\t\nFor example, during a scaling operation, if the pivot point of the texture coordinates is located at: -1, -1, 0 and you wanted to scale by 0.5 (reduce its size by 50%) the texture would scale toward the pivot point and appear to slide down and to the left.\t\t\t\n\t\t\t\nIn the example above, rotations performed on a texture coordinates with different pivot points produce very different results.\n\n\n px - py - pz -\n\n\n\n -\n\nExtra Information for the Texture can be accessed via an Info CHOP.\n\n\n\n - Number of points in this . - Number of primitives in this . - Number of particles in this . - Time spent in another thread updating geometry data on the from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time. - Time spent in another thread updating meta surface geometry data (such as metaballs or nurbs) on the from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time.\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\n2021.100002018.28070before 2018.28070\nSOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nA Operator Family that reads, creates and modifies 3D points, polygons, lines, particles, surfaces, spheres and meatballs. Particles and point clouds are now done primarily on the GPU using TOPs.\n\n\n\nThe 3D data held in SOPs and passed for rendering by the Geometry COMP.\n\n\n\nA surface type in SOPs that includes polygon, curve (NURBS and Bezier), patch (NURBS and Bezier) and other basic shapes like sphere, tube and metaball. Points and Primitives are part of the Geometry Detail, which is a part of a SOP.\n\n\n\nA polygon is a type of Primitive that is formed from a set of Vertices in 3D that are implicitly connected together to form a multi-edge shape.\n\n\n\nEach SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.\n\n\n\nA sequence of vertices form a Polygon in a SOP. Each vertex is an integer index into the Point List, and each Point holds an XYZ position and attributes like Normals and Texture Coordinates.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Texture_SOP&oldid=24272\"\n\t\tCategory: SOPs",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.517Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Primitive Group",
"label": "Primitive Group",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe Texture assigns texture UV and W coordinates to the Source geometry for use in texture and bump mapping. It generates multi-layers of texture coordinates.\ntextureSOP_Class\n\nContents\n \n \n \n \n \n \n \n \n \n\n\n\n\n\nNOTE: the following discussing pertains only to face and hull primitives.\nIf a texture type requires fixing of seams and the texture is applied to vertices, the wrapped primitives are unrolled before computing the texture coordinates. Unrolling a wrapped primitive turns it into an open primitive whose new vertices use the same points as the vertices they have been uniqued from. Thus, unrolling does not change the point count, nor does it allow cracks to appear further down the road. Explicit unrolling, using the Primitive SOP, is not required.\nThe seam fixing is done after computing the texture coordinates. It is required whether textures are applied to vertices or points, and it's done in u, v, or both.\nThe following texture types require fixing of seams:\n\n - seams fixed in u.\n - seams fixed in u and v.\n - seams fixed in u and v.\n: , , and - seams fixed in u and v.Note: When the projection type is Cylindrical or Polar, closed meshes, Bzier & NURBS surfaces will be opened. At least one row/column of vertices will be added (possibly more for NURBS<). This is to prevent poor interpolation of texture coordinates at the seam of the join.\n\n\n group - If there are input primitive groups, specifying a group name in this field will cause this to act only upon the group specified. Does not work with point or vertex groups. Accepts patterns, as described in Pattern Matching.\n\n\n\n\n\n texlayer - If the geometry has multiple textures layers applied to it, this parameter determines which layer of UV coordinates this Texture will effect.\n\n\n\t\t\n type - - The , , and texturing methods accept spline curves as well as polygons.\t\nWhen using one of the spline-based methods, specifying a paste hierarchy in the field will propagate the computation of texture coordinates to all of its nodes. Projection methods will typically yield smoother texture continuity between pasted surfaces than any of the spline methods. Sometimes it helps ensuring that pasted features are Chord-length parameterized with the Basis SOP.\n\n\n texture - Direct projection from . xyzposition - The XYZ position of the vertices will be copied into the UVW values. equirectangularin - Applies corrdinates to properly apply an equirectangular texture map to the inside of an object. Useful for skyboxes for example. equirectangularout - Applies corrdinates to properly apply an equirectangular texture map to the outside of an object. cylin - Wrap cylindrically in direction. rowcol - For geometry constructed as a mesh (Grid, Sphere, Tube, Skin, and Sweep). The U coordinates are placed along rows, and the V coordinates along columns. This is good for texturing curved meshes such as car fenders where you cannot project from any one axis. face - Maps a copy of the texture onto every face. You should make points unique using a Facet SOP, before using this function in the Texture . The map is graphically projected to each face along its normal, so the texture is oriented properly for each face. However, the map is not scaled to fit each polygon, nor is it distorted by the shape of each polygon. If the geometry changes in size in object space, the texture does not \"stick\" to the geometry. It is best suited to texturing objects that represent chunks of rock and brick, as the textures will likely not match at the edges between polygons. modify - If the Source already has texture UV coordinates, they are maintained. You can offset and scale them, however, using and . suniform - This projection type operates only on NURBS and Bzier surfaces. It samples the domain space (i.e. the basis) of each surface uniformly in U and V and assigns those (u,v) values as texture coordinates to the surface points or vertices. To ensure continuity between the texture space of adjacent surfaces insert a Basis SOP before the Texture and toggle on to merge the spline bases in U and/or V. saverage - Stores the average of degree successive knots into the texture attribute. These averages are known as Greville points. This method and are recommended for pasted surfaces. sarclen - This method is similar to the method since it relies on the underlying spline basis when computing the texture coordinates. Both methods generate texture coordinates in the same range, bounded by the minimum and maximum knot values. The difference between the two spline methods lies in the spacing between successive texture coordinates. The uniform method samples the parameter space uniformly. The method chooses the texture coordinates based on surface arc-lengths.Since the method relies heavily on the parametric fabric of the surface, the resulting texture will tend to squash and stretch given uneven surface parameterizations. The method reduces this effect by relating the texture space directly to the world space of the surface, while ensuring that the size and origin of the generated texture space coincide with those of the underlying domain.\n\n edgelength - Applies to hulls + faces (NURBs/Bezier/). persp - The texture coordinates are assigned so that the world space of the object can be textured to fit the projection of the camera exactly. If any points are behind the near clipping plane or beyond the far clipping plane, the texture coordinates (0, 0, 0) are assigned. Note: Unless a Custom Projection matrix is used in the Camera COMP, the aspect ratio of the projection is assumed to be 1:1. You may need to scale the UVs to match the aspect ratio of your render. equiazimuth - Applies coordinates for using 180 degree Fish Eye maps. equiazimuth360 - Applies coordinates for using 360 degree Fish Eye maps.\n\t\t\n axis - - Axis to project along, or projection method from splines. X, Y, or Z axes.\n\n x - y - z -\n\t\t\n camera - This is used when the Texture Type is selected. The menu is used to select which light or camera to project the perspective coordinates from.\n\n\n\t\t\n coord - - Select to apply texture coordinates to their Natural Location, textures, or textures.\t\nWhen is selected, the UV's will be applied to the verticies when using , , , and texture types. , , and will always generate point UV's when you choose .\t\t\t\nNatural Location will also create vertex uvs when creating new texture layers, if a vertex uv already exists for layer 0.\t\t\t\nIIf the primitive is open in both directions like a grid or a surface (so that the ends do not touch), then the advantage of vertex UV's does not apply since there are no matched seams on the single surface to worry about.\t\t\t\nUsing vertex UVs gives you unique points at the closed seam whereas point UVs are shared at seams and are, by default given a value of 0 for either U or V depending on the closed direction of the surface. If you want to make a closed surface open, simply insert a Carve SOP in the chain and place a single carve in the surface of the direction that the surface is closed.\n\n\n natural - point - vertex -\n\t\t\n s - - Scales the texture coordinates a specific amount.\n\nsu -sv -sw -\n\t\t\n offset - - Offsets the texture coordinates a specific amount.\n\noffsetu -offsetv -offsetw -\n\t\t\n angle - Rotates the texture coordinates the specified value.\t\nTip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface (using a Basis SOP) between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.\n\n\n\t\t\n fixseams - Attempts to correct texture continuity at face seams.\n\n\n\n\n\nAdd further transformations to the texture coordinate space.\n\n xord - - Sets the overall transform order for the transformations. The transform order determines the order in which transformations take place. Depending on the order, you can achieve different results using the exact same values. Choose the appropriate order from the menu.\n\n srt - str - rst - rts - tsr - trs -\n\t\t\n rord - - Sets the order of the rotations within the overall transform order.\n\n xyz - xzy - yxz - yzx - zxy - zyx -\n\t\t\n t - - These three fields move the texture coordinates in the three axes.\n\n tx - ty - tz -\n\t\t\n r - - These three fields rotate the texture coordinates in the three axes.\n\n rx - ry - rz -\n\t\t\n scaletwo - - These three fields scale the texture coordinates in the three axes.\n\n scaletwox - scaletwoy - scaletwoz -\n\t\t\n p - - The pivot point for the transformations (not the same as the pivot point in the pivot channels). The pivot point parameters allow you to define the point about which the texture coordinates scale and rotate. Altering the pivot point produces different results depending on the transformation performed.\t\nFor example, during a scaling operation, if the pivot point of the texture coordinates is located at: -1, -1, 0 and you wanted to scale by 0.5 (reduce its size by 50%) the texture would scale toward the pivot point and appear to slide down and to the left.\t\t\t\n\t\t\t\nIn the example above, rotations performed on a texture coordinates with different pivot points produce very different results.\n\n\n px - py - pz -\n\n\n\n -\n\nExtra Information for the Texture can be accessed via an Info CHOP.\n\n\n\n - Number of points in this . - Number of primitives in this . - Number of particles in this . - Time spent in another thread updating geometry data on the from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time. - Time spent in another thread updating meta surface geometry data (such as metaballs or nurbs) on the from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time.\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\n2021.100002018.28070before 2018.28070\nSOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nA Operator Family that reads, creates and modifies 3D points, polygons, lines, particles, surfaces, spheres and meatballs. Particles and point clouds are now done primarily on the GPU using TOPs.\n\n\n\nThe 3D data held in SOPs and passed for rendering by the Geometry COMP.\n\n\n\nA surface type in SOPs that includes polygon, curve (NURBS and Bezier), patch (NURBS and Bezier) and other basic shapes like sphere, tube and metaball. Points and Primitives are part of the Geometry Detail, which is a part of a SOP.\n\n\n\nA polygon is a type of Primitive that is formed from a set of Vertices in 3D that are implicitly connected together to form a multi-edge shape.\n\n\n\nEach SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.\n\n\n\nA sequence of vertices form a Polygon in a SOP. Each vertex is an integer index into the Point List, and each Point holds an XYZ position and attributes like Normals and Texture Coordinates.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Texture_SOP&oldid=24272\"\n\t\tCategory: SOPs",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.519Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Primitive Group",
"label": "Primitive Group",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "The Texture assigns texture UV and W coordinates to the Source geometry for use in texture and bump mapping. It generates multi-layers of texture coordinates.\ntextureSOP_Class\n\nContents\n \n \n \n \n \n \n \n \n \n\n\n\n\n\nNOTE: the following discussing pertains only to face and hull primitives.\nIf a texture type requires fixing of seams and the texture is applied to vertices, the wrapped primitives are unrolled before computing the texture coordinates. Unrolling a wrapped primitive turns it into an open primitive whose new vertices use the same points as the vertices they have been uniqued from. Thus, unrolling does not change the point count, nor does it allow cracks to appear further down the road. Explicit unrolling, using the Primitive SOP, is not required.\nThe seam fixing is done after computing the texture coordinates. It is required whether textures are applied to vertices or points, and it's done in u, v, or both.\nThe following texture types require fixing of seams:\n\n - seams fixed in u.\n - seams fixed in u and v.\n - seams fixed in u and v.\n: , , and - seams fixed in u and v.Note: When the projection type is Cylindrical or Polar, closed meshes, Bzier & NURBS surfaces will be opened. At least one row/column of vertices will be added (possibly more for NURBS<). This is to prevent poor interpolation of texture coordinates at the seam of the join.\n\n\n group - If there are input primitive groups, specifying a group name in this field will cause this to act only upon the group specified. Does not work with point or vertex groups. Accepts patterns, as described in Pattern Matching.\n\n\n\n\n\n texlayer - If the geometry has multiple textures layers applied to it, this parameter determines which layer of UV coordinates this Texture will effect.\n\n\n\t\t\n type - - The , , and texturing methods accept spline curves as well as polygons.\t\nWhen using one of the spline-based methods, specifying a paste hierarchy in the field will propagate the computation of texture coordinates to all of its nodes. Projection methods will typically yield smoother texture continuity between pasted surfaces than any of the spline methods. Sometimes it helps ensuring that pasted features are Chord-length parameterized with the Basis SOP.\n\n\n texture - Direct projection from . xyzposition - The XYZ position of the vertices will be copied into the UVW values. equirectangularin - Applies corrdinates to properly apply an equirectangular texture map to the inside of an object. Useful for skyboxes for example. equirectangularout - Applies corrdinates to properly apply an equirectangular texture map to the outside of an object. cylin - Wrap cylindrically in direction. rowcol - For geometry constructed as a mesh (Grid, Sphere, Tube, Skin, and Sweep). The U coordinates are placed along rows, and the V coordinates along columns. This is good for texturing curved meshes such as car fenders where you cannot project from any one axis. face - Maps a copy of the texture onto every face. You should make points unique using a Facet SOP, before using this function in the Texture . The map is graphically projected to each face along its normal, so the texture is oriented properly for each face. However, the map is not scaled to fit each polygon, nor is it distorted by the shape of each polygon. If the geometry changes in size in object space, the texture does not \"stick\" to the geometry. It is best suited to texturing objects that represent chunks of rock and brick, as the textures will likely not match at the edges between polygons. modify - If the Source already has texture UV coordinates, they are maintained. You can offset and scale them, however, using and . suniform - This projection type operates only on NURBS and Bzier surfaces. It samples the domain space (i.e. the basis) of each surface uniformly in U and V and assigns those (u,v) values as texture coordinates to the surface points or vertices. To ensure continuity between the texture space of adjacent surfaces insert a Basis SOP before the Texture and toggle on to merge the spline bases in U and/or V. saverage - Stores the average of degree successive knots into the texture attribute. These averages are known as Greville points. This method and are recommended for pasted surfaces. sarclen - This method is similar to the method since it relies on the underlying spline basis when computing the texture coordinates. Both methods generate texture coordinates in the same range, bounded by the minimum and maximum knot values. The difference between the two spline methods lies in the spacing between successive texture coordinates. The uniform method samples the parameter space uniformly. The method chooses the texture coordinates based on surface arc-lengths.Since the method relies heavily on the parametric fabric of the surface, the resulting texture will tend to squash and stretch given uneven surface parameterizations. The method reduces this effect by relating the texture space directly to the world space of the surface, while ensuring that the size and origin of the generated texture space coincide with those of the underlying domain.\n\n edgelength - Applies to hulls + faces (NURBs/Bezier/). persp - The texture coordinates are assigned so that the world space of the object can be textured to fit the projection of the camera exactly. If any points are behind the near clipping plane or beyond the far clipping plane, the texture coordinates (0, 0, 0) are assigned. Note: Unless a Custom Projection matrix is used in the Camera COMP, the aspect ratio of the projection is assumed to be 1:1. You may need to scale the UVs to match the aspect ratio of your render. equiazimuth - Applies coordinates for using 180 degree Fish Eye maps. equiazimuth360 - Applies coordinates for using 360 degree Fish Eye maps.\n\t\t\n axis - - Axis to project along, or projection method from splines. X, Y, or Z axes.\n\n x - y - z -\n\t\t\n camera - This is used when the Texture Type is selected. The menu is used to select which light or camera to project the perspective coordinates from.\n\n\n\t\t\n coord - - Select to apply texture coordinates to their Natural Location, textures, or textures.\t\nWhen is selected, the UV's will be applied to the verticies when using , , , and texture types. , , and will always generate point UV's when you choose .\t\t\t\nNatural Location will also create vertex uvs when creating new texture layers, if a vertex uv already exists for layer 0.\t\t\t\nIIf the primitive is open in both directions like a grid or a surface (so that the ends do not touch), then the advantage of vertex UV's does not apply since there are no matched seams on the single surface to worry about.\t\t\t\nUsing vertex UVs gives you unique points at the closed seam whereas point UVs are shared at seams and are, by default given a value of 0 for either U or V depending on the closed direction of the surface. If you want to make a closed surface open, simply insert a Carve SOP in the chain and place a single carve in the surface of the direction that the surface is closed.\n\n\n natural - point - vertex -\n\t\t\n s - - Scales the texture coordinates a specific amount.\n\nsu -sv -sw -\n\t\t\n offset - - Offsets the texture coordinates a specific amount.\n\noffsetu -offsetv -offsetw -\n\t\t\n angle - Rotates the texture coordinates the specified value.\t\nTip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface (using a Basis SOP) between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.\n\n\n\t\t\n fixseams - Attempts to correct texture continuity at face seams.\n\n\n\n\n\nAdd further transformations to the texture coordinate space.\n\n xord - - Sets the overall transform order for the transformations. The transform order determines the order in which transformations take place. Depending on the order, you can achieve different results using the exact same values. Choose the appropriate order from the menu.\n\n srt - str - rst - rts - tsr - trs -\n\t\t\n rord - - Sets the order of the rotations within the overall transform order.\n\n xyz - xzy - yxz - yzx - zxy - zyx -\n\t\t\n t - - These three fields move the texture coordinates in the three axes.\n\n tx - ty - tz -\n\t\t\n r - - These three fields rotate the texture coordinates in the three axes.\n\n rx - ry - rz -\n\t\t\n scaletwo - - These three fields scale the texture coordinates in the three axes.\n\n scaletwox - scaletwoy - scaletwoz -\n\t\t\n p - - The pivot point for the transformations (not the same as the pivot point in the pivot channels). The pivot point parameters allow you to define the point about which the texture coordinates scale and rotate. Altering the pivot point produces different results depending on the transformation performed.\t\nFor example, during a scaling operation, if the pivot point of the texture coordinates is located at: -1, -1, 0 and you wanted to scale by 0.5 (reduce its size by 50%) the texture would scale toward the pivot point and appear to slide down and to the left.\t\t\t\n\t\t\t\nIn the example above, rotations performed on a texture coordinates with different pivot points produce very different results.\n\n\n px - py - pz -\n\n\n\n -\n\nExtra Information for the Texture can be accessed via an Info CHOP.\n\n\n\n - Number of points in this . - Number of primitives in this . - Number of particles in this . - Time spent in another thread updating geometry data on the from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time. - Time spent in another thread updating meta surface geometry data (such as metaballs or nurbs) on the from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time.\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\n2021.100002018.28070before 2018.28070\nSOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nA Operator Family that reads, creates and modifies 3D points, polygons, lines, particles, surfaces, spheres and meatballs. Particles and point clouds are now done primarily on the GPU using TOPs.\n\n\n\nThe 3D data held in SOPs and passed for rendering by the Geometry COMP.\n\n\n\nA surface type in SOPs that includes polygon, curve (NURBS and Bezier), patch (NURBS and Bezier) and other basic shapes like sphere, tube and metaball. Points and Primitives are part of the Geometry Detail, which is a part of a SOP.\n\n\n\nA polygon is a type of Primitive that is formed from a set of Vertices in 3D that are implicitly connected together to form a multi-edge shape.\n\n\n\nEach SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.\n\n\n\nA sequence of vertices form a Polygon in a SOP. Each vertex is an integer index into the Point List, and each Point holds an XYZ position and attributes like Normals and Texture Coordinates.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Texture_SOP&oldid=24272\"",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.521Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Primitive Group",
"label": "Primitive Group",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "group - If there are input primitive groups, specifying a group name in this field will cause this to act only upon the group specified. Does not work with point or vertex groups. Accepts patterns, as described in Pattern Matching.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.522Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Texture Layer",
"label": "Texture Layer",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "texlayer - If the geometry has multiple textures layers applied to it, this parameter determines which layer of UV coordinates this Texture will effect.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.522Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Texture Type",
"label": "Texture Type",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "type - - The , , and texturing methods accept spline curves as well as polygons.\t\nWhen using one of the spline-based methods, specifying a paste hierarchy in the field will propagate the computation of texture coordinates to all of its nodes. Projection methods will typically yield smoother texture continuity between pasted surfaces than any of the spline methods. Sometimes it helps ensuring that pasted features are Chord-length parameterized with the Basis SOP.\n\n\n texture - Direct projection from . xyzposition - The XYZ position of the vertices will be copied into the UVW values. equirectangularin - Applies corrdinates to properly apply an equirectangular texture map to the inside of an object. Useful for skyboxes for example. equirectangularout - Applies corrdinates to properly apply an equirectangular texture map to the outside of an object. cylin - Wrap cylindrically in direction. rowcol - For geometry constructed as a mesh (Grid, Sphere, Tube, Skin, and Sweep). The U coordinates are placed along rows, and the V coordinates along columns. This is good for texturing curved meshes such as car fenders where you cannot project from any one axis. face - Maps a copy of the texture onto every face. You should make points unique using a Facet SOP, before using this function in the Texture . The map is graphically projected to each face along its normal, so the texture is oriented properly for each face. However, the map is not scaled to fit each polygon, nor is it distorted by the shape of each polygon. If the geometry changes in size in object space, the texture does not \"stick\" to the geometry. It is best suited to texturing objects that represent chunks of rock and brick, as the textures will likely not match at the edges between polygons. modify - If the Source already has texture UV coordinates, they are maintained. You can offset and scale them, however, using and . suniform - This projection type operates only on NURBS and Bzier surfaces. It samples the domain space (i.e. the basis) of each surface uniformly in U and V and assigns those (u,v) values as texture coordinates to the surface points or vertices. To ensure continuity between the texture space of adjacent surfaces insert a Basis SOP before the Texture and toggle on to merge the spline bases in U and/or V. saverage - Stores the average of degree successive knots into the texture attribute. These averages are known as Greville points. This method and are recommended for pasted surfaces. sarclen - This method is similar to the method since it relies on the underlying spline basis when computing the texture coordinates. Both methods generate texture coordinates in the same range, bounded by the minimum and maximum knot values. The difference between the two spline methods lies in the spacing between successive texture coordinates. The uniform method samples the parameter space uniformly. The method chooses the texture coordinates based on surface arc-lengths.Since the method relies heavily on the parametric fabric of the surface, the resulting texture will tend to squash and stretch given uneven surface parameterizations. The method reduces this effect by relating the texture space directly to the world space of the surface, while ensuring that the size and origin of the generated texture space coincide with those of the underlying domain.\n\n edgelength - Applies to hulls + faces (NURBs/Bezier/). persp - The texture coordinates are assigned so that the world space of the object can be textured to fit the projection of the camera exactly. If any points are behind the near clipping plane or beyond the far clipping plane, the texture coordinates (0, 0, 0) are assigned. Note: Unless a Custom Projection matrix is used in the Camera COMP, the aspect ratio of the projection is assumed to be 1:1. You may need to scale the UVs to match the aspect ratio of your render. equiazimuth - Applies coordinates for using 180 degree Fish Eye maps. equiazimuth360 - Applies coordinates for using 360 degree Fish Eye maps.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.522Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Orthographic",
"label": "Orthographic",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "texture - Direct projection from . xyzposition - The XYZ position of the vertices will be copied into the UVW values. equirectangularin - Applies corrdinates to properly apply an equirectangular texture map to the inside of an object. Useful for skyboxes for example. equirectangularout - Applies corrdinates to properly apply an equirectangular texture map to the outside of an object. cylin - Wrap cylindrically in direction. rowcol - For geometry constructed as a mesh (Grid, Sphere, Tube, Skin, and Sweep). The U coordinates are placed along rows, and the V coordinates along columns. This is good for texturing curved meshes such as car fenders where you cannot project from any one axis. face - Maps a copy of the texture onto every face. You should make points unique using a Facet SOP, before using this function in the Texture . The map is graphically projected to each face along its normal, so the texture is oriented properly for each face. However, the map is not scaled to fit each polygon, nor is it distorted by the shape of each polygon. If the geometry changes in size in object space, the texture does not \"stick\" to the geometry. It is best suited to texturing objects that represent chunks of rock and brick, as the textures will likely not match at the edges between polygons. modify - If the Source already has texture UV coordinates, they are maintained. You can offset and scale them, however, using and . suniform - This projection type operates only on NURBS and Bzier surfaces. It samples the domain space (i.e. the basis) of each surface uniformly in U and V and assigns those (u,v) values as texture coordinates to the surface points or vertices. To ensure continuity between the texture space of adjacent surfaces insert a Basis SOP before the Texture and toggle on to merge the spline bases in U and/or V. saverage - Stores the average of degree successive knots into the texture attribute. These averages are known as Greville points. This method and are recommended for pasted surfaces. sarclen - This method is similar to the method since it relies on the underlying spline basis when computing the texture coordinates. Both methods generate texture coordinates in the same range, bounded by the minimum and maximum knot values. The difference between the two spline methods lies in the spacing between successive texture coordinates. The uniform method samples the parameter space uniformly. The method chooses the texture coordinates based on surface arc-lengths.Since the method relies heavily on the parametric fabric of the surface, the resulting texture will tend to squash and stretch given uneven surface parameterizations. The method reduces this effect by relating the texture space directly to the world space of the surface, while ensuring that the size and origin of the generated texture space coincide with those of the underlying domain.\n\n edgelength - Applies to hulls + faces (NURBs/Bezier/). persp - The texture coordinates are assigned so that the world space of the object can be textured to fit the projection of the camera exactly. If any points are behind the near clipping plane or beyond the far clipping plane, the texture coordinates (0, 0, 0) are assigned. Note: Unless a Custom Projection matrix is used in the Camera COMP, the aspect ratio of the projection is assumed to be 1:1. You may need to scale the UVs to match the aspect ratio of your render. equiazimuth - Applies coordinates for using 180 degree Fish Eye maps. equiazimuth360 - Applies coordinates for using 360 degree Fish Eye maps.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.522Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Projection Axis",
"label": "Projection Axis",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "axis - - Axis to project along, or projection method from splines. X, Y, or Z axes.\n\n x - y - z -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.522Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "X Axis",
"label": "X Axis",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "x - y - z -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Camera Name",
"label": "Camera Name",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "camera - This is used when the Texture Type is selected. The menu is used to select which light or camera to project the perspective coordinates from.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Apply to",
"label": "Apply to",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "coord - - Select to apply texture coordinates to their Natural Location, textures, or textures.\t\nWhen is selected, the UV's will be applied to the verticies when using , , , and texture types. , , and will always generate point UV's when you choose .\t\t\t\nNatural Location will also create vertex uvs when creating new texture layers, if a vertex uv already exists for layer 0.\t\t\t\nIIf the primitive is open in both directions like a grid or a surface (so that the ends do not touch), then the advantage of vertex UV's does not apply since there are no matched seams on the single surface to worry about.\t\t\t\nUsing vertex UVs gives you unique points at the closed seam whereas point UVs are shared at seams and are, by default given a value of 0 for either U or V depending on the closed direction of the surface. If you want to make a closed surface open, simply insert a Carve SOP in the chain and place a single carve in the surface of the direction that the surface is closed.\n\n\n natural - point - vertex -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Natural location",
"label": "Natural location",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "natural - point - vertex -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Scale",
"label": "Scale",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "s - - Scales the texture coordinates a specific amount.\n\nsu -sv -sw -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Offset",
"label": "Offset",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "offset - - Offsets the texture coordinates a specific amount.\n\noffsetu -offsetv -offsetw -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Rotate",
"label": "Rotate",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "angle - Rotates the texture coordinates the specified value.\t\nTip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface (using a Basis SOP) between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Fix Face Seams",
"label": "Fix Face Seams",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "fixseams - Attempts to correct texture continuity at face seams.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Transform Order",
"label": "Transform Order",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "xord - - Sets the overall transform order for the transformations. The transform order determines the order in which transformations take place. Depending on the order, you can achieve different results using the exact same values. Choose the appropriate order from the menu.\n\n srt - str - rst - rts - tsr - trs -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Scale Rotate Translate",
"label": "Scale Rotate Translate",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "srt - str - rst - rts - tsr - trs -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Rotate Order",
"label": "Rotate Order",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "rord - - Sets the order of the rotations within the overall transform order.\n\n xyz - xzy - yxz - yzx - zxy - zyx -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Rx Ry Rz",
"label": "Rx Ry Rz",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "xyz - xzy - yxz - yzx - zxy - zyx -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Translate",
"label": "Translate",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "t - - These three fields move the texture coordinates in the three axes.\n\n tx - ty - tz -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "X",
"label": "X",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "tx - ty - tz -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Rotate",
"label": "Rotate",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "r - - These three fields rotate the texture coordinates in the three axes.\n\n rx - ry - rz -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.523Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "X",
"label": "X",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "rx - ry - rz -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.524Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Scale",
"label": "Scale",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "scaletwo - - These three fields scale the texture coordinates in the three axes.\n\n scaletwox - scaletwoy - scaletwoz -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.524Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "X",
"label": "X",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "scaletwox - scaletwoy - scaletwoz -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.524Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Pivot",
"label": "Pivot",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "p - - The pivot point for the transformations (not the same as the pivot point in the pivot channels). The pivot point parameters allow you to define the point about which the texture coordinates scale and rotate. Altering the pivot point produces different results depending on the transformation performed.\t\nFor example, during a scaling operation, if the pivot point of the texture coordinates is located at: -1, -1, 0 and you wanted to scale by 0.5 (reduce its size by 50%) the texture would scale toward the pivot point and appear to slide down and to the left.\t\t\t\n\t\t\t\nIn the example above, rotations performed on a texture coordinates with different pivot points produce very different results.\n\n\n px - py - pz -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.524Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "X",
"label": "X",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "px - py - pz -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-08T00:37:54.524Z",
"rawData": {},
"sourceElement": null
}
],
"parameterGroups": {},
"codeExamples": [],
"pythonExamples": [],
"expressions": [],
"commonInputs": [],
"commonOutputs": [],
"relatedOperators": [],
"workflowPatterns": [],
"images": [],
"videos": [],
"assets": [],
"keywords": [
"texture",
"assigns",
"coordinates",
"source",
"geometry",
"bump",
"mapping.",
"generates"
],
"tags": [
"SOP",
"TouchDesigner",
"Texture"
],
"searchWeight": 1,
"contentHash": "",
"processingDate": "2025-08-08T00:37:54.524Z",
"processingVersion": "1.0.0",
"isValid": true,
"validationErrors": []
}