即时渲染对象(ImmediateRenderObject)

优质
小牛编辑
134浏览
2023-12-01

This experimental class provides a fast code path for rendering meshes with frequently updated geometry data. When the renderer encounters an instance of ImmediateRenderObject, it only takes care about the most primitive rendering operations (e.g. binding vertex attributes, determining correct shader program or perfoming the actual draw call). Features like view frustum culling, wireframe rendering or using multiple materials are not supported. Besides ImmediateRenderObject can only be used to render triangles.

ImmediateRenderObject does not work with instances of BufferGeometry. The raw geometry data have to be maintained as properties of the ImmediateRenderObject.

Using ImmediateRenderObject makes only sense if you are updating your geometry data per frame. You can then benefit of a faster code path compared to the default mesh redering logic.

例子

Marching Cubes

构造函数(Constructor)

ImmediateRenderObject( material : Material )

material — The material of the ImmediateRenderObject.

Properties

See the base Object3D class for common properties.

.material : Boolean

The material of the ImmediateRenderObject. Assigning multiple materials is not supported.

.hasPositions : Boolean

Whether position data are defined or not. Default is false.

.hasNormals : Boolean

Whether normal data are defined or not. Default is false.

.hasColors : Boolean

Whether color data are defined or not. Default is false.

.hasUvs : Boolean

Whether texture coordinates are defined or not. Default is false.

.positionArray : Float32Array

The buffer holding position data. Default is null.

.normalArray : Float32Array

The buffer holding normal data. Default is null.

.colorArray : Float32Array

The buffer holding color data. Default is null.

.uvArray : Float32Array

The buffer holding texture coordinates. Default is null.

.count : Integer

The number of primitives to be rendered. Default is 0. This property will be set to 0 after each rendering so you usually set it in the implementatio of .render().

方法(Methods)

See the base Object3D class for common methods.

.render (renderCallback : Function) : null

renderCallback -- A function to render the generated geometry data.

This method needs to be implemented by the deriving class of ImmediateRenderObject. You normally want to implement the vertex buffer update logic and execute renderCallback at the end of your implementation.

源码(Source)

src/extras/objects/ImmediateRenderObject.js