-
Notifications
You must be signed in to change notification settings - Fork 0
VTS Browser Renderer API
David Levinsky edited this page Apr 6, 2017
·
6 revisions
This module provides methods for rendering.
| Method | Returns | Description |
|---|---|---|
| clear(<ClearOptions> options) | this | Clears the renderer. |
| createState(<StateOptions> options) | RenderState | Creates a renderer state. |
| setState(<RenderState> state) | this | Sets a renderer state. |
| Option | Type | Default | Description |
|---|---|---|---|
| clearColor | bool | true | Sets whether the screen color buffer will be cleared. |
| clearDepth | bool | true | Sets whether the screen depth buffer will be cleared. |
| color | RGBA | [255,255,255,255] | Sets the color to which the color buffer will be cleared. |
| depth | Number | 1.0 | Sets he depth to which the depth buffer will be cleared. |
| Option | Type | Default | Description |
|---|---|---|---|
| blend | bool | false | Sets whether the rendered primitives will be blended. Read more about the blending operation below. |
| stencil | bool | false | Sets whether the rendered primitives will write and test the stencil buffer. Read more about the stencil operation below. |
| zoffset | Number | 0 | Sets whether the rendered primitives will be have a depth offset. |
| zwrite | bool | true | Sets whether the rendered primitives will write to the depth buffer. |
| ztest | bool | true | Sets whether the rendered primitives will test the depth buffer. |
| zequal | bool | true | Sets the depth buffer test. If true the test is "less or equal". If false the test is "less only". |
| culling | bool | true | Sets whether the rendered polygons will be face culled. |
Todo: definition of blend and stencil operation.
| Method | Returns | Description |
|---|---|---|
| createTexture(<CreateTextureOptions> options) | GpuTexture | Creates a texture. |
| createMesh(<CreateMeshOptions> options) | GpuMesh | Creates a mesh. |
| createShader(<CreateShaderOptions> options) | GpuShader | Creates a shader. |
| Option | Type | Default | Description |
|---|---|---|---|
| source | Image/Uint8Array | null | Sets data source from which the texture will be created |
| width | Number | null | Width of the texture. Used only when the texture is generated from a Uint8Array |
| height | Number | null | Width of the texture. Used only when the texture is generated from a Uint8Array |
| filter | String | "linear" | Texture filtering used for rendering. Posible values are: "nearest", "linear", "trilinear". |
| repeat | Bool | false | Set whether the texture will be repeated. |
| Option | Type | Default | Description |
|---|---|---|---|
| vertices | Float32Array | null | Sets polygon vertices. |
| vertex-size | Number | 3 | Sets size of the vertex vector. |
| uvs | Float32Array | null | Sets polygon uv vertices. |
| uv-size | Number | 2 | Sets the size of the uv vector. |
| Option | Type | Default | Description |
|---|---|---|---|
| vertex-shader | string | null | Sets vertex shader code. |
| fragment-shader | string | null | Sets fragment shader code. |
| Method | Returns | Description |
|---|---|---|
| removeResource(object resource) | null | Destroys resources. Resource data will be removed from memory. Supported resources are: Texture, Mesh, Shader. |
| Method | Returns | Description |
|---|---|---|
| addJob(<AddJobOptions> options) | this | Adds a render job. |
| clearJobs() | this | Clears render jobs. |
TODO:
| Method | Returns | Description |
|---|---|---|
| drawMesh(<DrawMeshOptions> options) | this | Draws a Mesh. |
| drawImage(<DrawImageOptions> options) | this | Draws a 2D Image in screen space. |
| drawBillboard(<DrawBillboardOptions> options) | this | Draws a 3D Billboard. |
| drawLinestring(<DrawLinestringOptions> options) | this | Draws a Linestring in screen space. |
| drawJobs(<DrawJobsOptions> options) | this | Draws Jobs. |
| Option | Type | Default | Description |
|---|---|---|---|
| mesh | GPUMesh | null | Sets a mesh to be rendered. |
| texture | GPUTexture | null | Sets a texture. |
| shader | GPUShader/String | "textured" | Sets a shader. There is a set of named built in shaders. Supported built in shaders are: "textured", "shaded", "textured-and-shaded", "hit". |
| shader-attributes | Object | null | All object properties and values will be applied to the shader as attributes. The attributes have the following form: "attribute" : "nameInShader". Supported attributes are "vertex", "uv", "normal". |
| shader-variables | Object | null | All object properties and values will be applied to the shader as variables. The variables have the following form: "name" : ["variableType", value]. Supported variable types are: "floatArray", "float", "mat4", "vec2", "vec3", "vec4", "sampler". |
| name | Description |
|---|---|
| textured | Textured mesh without lighting. Supported variables are: "uMV" - model view matrix(mat4). |
| shaded | Untextured mesh with lighting only. |
| textured-and-shaded | Textured mesh with lighting. |
| hit | Special shader used for meshes which can be detected by the getHitCoords method. |
Supported variables for build in shaders are:
| name | type | Description |
|---|---|---|
| uMV | mat4 | The model view matrix. |
| uProj | mat4 | The projection matrix. |
| uFogDensity | float | The fog factor. Zero value means no fog. |
| uMaterial | mat4 | The matrix defining material with the following form. [aR, aG, aB, 0, dR, dG, dB, 0, sR, sG, sB, 0, shininess, 0, 0, 0]. Where aR, aG, aB is ambient color, dR, dG, dB is diffuse color, sR, sG, sB is specular color. Range of values is from 0 to 255. |
| Option | Type | Default | Description |
|---|---|---|---|
| rect | Rect | null | Sets image area. Rect is defined as [left, top, width, height] in screen pixels. |
| texture | GPUTexture | null | Sets the texture. |
| texrure-rect | Rect | null | [unimplemented] Sets texture area. Rect is defined as [left, top, width, height] in texture pixels. If this option is not defined the whole texture area will be rendered. |
| depth | Number | 0 | Sets depth position of the image. |
| depth-test | false | null | Sets whether the depth buffer will be tested. |
| write-depth | Bool | false | Sets whether depth will be written to the depth buffer. |
| blend | Bool | false | Sets whether the billboard will be blended with background. |
| use-state | Bool | false | Sets whether the current state will be used for rendering. If state is used then options like "depth-test", "write-depth", "blend" will be determined by the render state itself. Use of render state can speed up rendering of primitives which share the same render state. |
| Option | Type | Default | Description |
|---|---|---|---|
| mvp | Matrix | null | Sets the Model-View-Projection matrix. |
| texture | GPUTexture | null | Sets the texture. |
| texrure-rect | Rect | null | [unsupported] Sets texture area. Rect is defined as [left, top, width, height] in texture pixels. If this option is not defined the whole texture area will be rendered. |
| depth-test | false | null | Sets whether the depth buffer will be tested. |
| write-depth | Bool | false | Sets whether the depth will be written to the depth buffer. |
| blend | Bool | false | Sets whether the billboard will be blended with background. |
| use-state | Bool | false | Sets whether the current state will be used for rendering. If state is used then options like "depth-test", "write-depth", "blend" will be determined by the render state itself. Use of render state can speed up rendering of primitives which share same render state. |
| Option | Type | Default | Description |
|---|---|---|---|
| points | Array of Point2D | null | Array of line points where point is defined as [left, top]. |
| color | RGBA | [255,255,255,255] | Color of the line. |
| size | Number | null | Width of the line in pixels. |
| depth-test | false | null | Sets whether the depth buffer will be tested |
| write-depth | Bool | false | Sets whether the depth will be written to the depth buffer. |
| blend | Bool | false | Sets whether the line will be blended with background. |
| use-state | Bool | false | Sets whether the current state will be used for rendering. If state is used then options like "depth-test", "write-depth", "blend" will be determined by the render state itself. Use of render state can speed up rendering of primitives which share same render state. |
| Method | Returns | Description |
|---|---|---|
| getCanvasCoords(<Coords> coords, <Matrix> mvp) | Coords | Returns the position of a 3D point in screen coordinates (pixels). Position of the 3D point has to be relative to the camera. |
| getCanvasSize() | [width, height] | Returns the size of the screen in pixels. |
The coords is an array of the following values [Number x,Number y,Number z].
The 4x4 row major matrix (array of 16 numbers).