MeshInstancerFromTexture_v3 Op

MeshInstancerFromTexture

Draw the same mesh multiple times on the GPU


A performant way to render a 3d object many times.

Data like position, scaling, colors etc. are delivered as RGB channels in textures.
RGB values represent XYZ coordinates in the position or scale input texture. Make sure the texture format has the required precision (16 bit or 32bit textures are a probably a must)

The 3d object or mesh to be rendered needs to be connected as a geometry. Most meshes in cables output a geometry object that you can connect. Imported 3d meshes can also output geometries, e.g. see GltfGeometry operator.

The object can be scaled differently each time, or have a different color, etc.

The Billboarding option will render the object always perpendicular to the screen.
Spherical billboarding means the object will be oriented flat to the screen, this is handy for 2d overlays.
Cylindrical billboarding can be used for instancing flat objects in a 3d environment, often used in games for rendering trees, grass or bushes as 2d planes.


Full Name
  • Ops.Gl.Meshes.MeshInstancerFromTexture_v3
Visibility
  • Core Op - Official cables op
License
  • MIT
Authorgithub


Example Patch Mesh Instancer from Texture

Use a texture to position geometry instances in your scene. Using HDR textures will alow for precise control.
Open In Editor

Youtube Video Tutorial

INPUT PORTS


exe (Trigger)

Trigger In

Geometry (Object:geometry)
Scale (Number)

Global scale for all instances, disabled if scale array is used

Limit Instances (Number:boolean )
Num Instances (Number:integer )
Billboarding index (Number:integer ) Off  Spherical  Cylindrical 
Position Texture (Object:texture)
Rotation Texture (Object:texture)
Rotation index (Number:integer ) Euler  Normal  Quaternion 
Scale Texture (Object:texture)
Color Texture (Object:texture)
TexCoord Texture (Object:texture)
Color Texture Blendmode index (Number:integer ) Multiply  Add  Normal 
Ignore Alpha Less Than (Number)
Multiply Pos X (Number)
Multiply Pos Y (Number)
Multiply Pos Z (Number)

OUTPUT PORTS


Trigger Out (Trigger)

Trigger Out

Num (Number)

Total number of instances/shapes


Patches using MeshInstancerFromTexture_v3

  • Examples
  • Public
  • My Patches

Changelog


created opuser avatarcables - 2019-11-14 17:46
Ops.User.cables.MeshInstancer_v3 renamed to Ops.Gl.MeshInstancer_v3user avatarcables - 2019-11-14 19:03
Ops.Gl.MeshInstancer_v3 renamed to Ops.Gl.MeshInstancer_v4user avatarpandur - 2020-07-23 11:24
added core lib: cgl_shadermodifieruser avatarpandur - 2020-07-23 15:13
cloned op from Ops.Gl.MeshInstancer_v4user avatarpandur - 2021-03-01 07:41
Ops.User.pandur.MeshInstancerFromTexture renamed to Ops.Gl.Meshes.MeshInstancerFromTextureuser avatarpandur - 2021-03-01 08:18
Ops.Gl.Meshes.MeshInstancerFromTexture renamed to Ops.Dev.Gl.Meshes.MeshInstancerFromTextureuser avatarpandur - 2021-08-04 10:41
cloned op from Ops.Dev.Gl.Meshes.MeshInstancerFromTextureuser avatarpandur - 2021-11-02 18:55
Ops.User.pandur.MeshInstancerFromTexture2 renamed to Ops.Dev.Gl.Meshes.MeshInstancerFromTexture_v2user avatarpandur - 2021-11-02 19:40
Ops.Dev.Gl.Meshes.MeshInstancerFromTexture_v2 renamed to Ops.Gl.Meshes.MeshInstancerFromTexture_v2user avatarpandur - 2022-02-07 11:14
cloned op from Ops.Gl.Meshes.MeshInstancerFromTexture_v2user avatarpandur - 2023-02-07 16:52
renameOps.User.pandur.MeshInstancerFromTexture3 renamed to Ops.Gl.Meshes.MeshInstancerFromTexture_v3user avatarpandur - 2023-02-07 17:06
featureAdded options for billboardinguser avatarpandur - 2024-02-15 10:22
bugfixFix bug not rendering correctly on the first frameuser avatarpandur - 2024-08-08 12:22