Methods
(static) texture(settings)
Represents a texture
Parameters:
Name |
Type |
Description |
settings |
object
|
Texture settings
Properties
Name |
Type |
Attributes |
Description |
name |
string
|
|
The name/id of the texture.
|
url |
string
|
<optional>
|
If supplied this url will be used to load an image for the texture.
|
src |
strirng
|
<optional>
|
If supplied this glsl code string will be used to generate a texture dynamically via a fragment shader. See example below.
|
|
- Source:
-
Examples
// check pattern dynamic texture
// set tColor to the output rgba value for the current pixel fragment
texture({
name: 'check',
src: `
float s = sin(50.*uv.x)*sin(50.*uv.y);
if(s < 0.) {
tColor = vec4(${normedColorStr('#aaaaaa')}, 1.0);
} else {
tColor = vec4(0.3, 0.0, 0.0, 1.);
}
`
}),
// regular texture with image loaded from url
texture({
name: 'concrete-texture',
url: 'assets/images/concrete.jpg'
})
(static) volumeTexture(settings, data)
Represents a volume texture (sampling data for an inhomogeneous volume)
Parameters:
Name |
Type |
Description |
settings |
object
|
Texture settings
Properties
Name |
Type |
Attributes |
Description |
size |
number
|
|
Volume size (cubic)
|
name |
string
|
|
The name/id of the texture.
|
cache |
bool
|
<optional>
|
Whether to cache the data (useful if generated on the fly, see example 1)
|
|
data |
Array.<Array.<Array.<number>>>
|
function
|
A 3d array containing sampling data or a function returning a 3d array with data
|
- Source:
-
Example
// tiled & cached volume generated on the fly
textures = [
volumeTexture({
name: 'volume-texture',
size: 64,
cache: true,
data: range3d(64)
|> #.map(([x, y, z]) => {
const scale = 50;
let f = simplex.noise3D(x*scale, y*scale, z*scale);
return clamp(f, 0.0, 1.0);
})
|> tileSeamless3d(#, 64)
})
];
Type Definitions
geometryDisplacementMap :object
Apply texture with name 'name' as a displacement map to a SDF geometry.
Properties:
Name |
Type |
Description |
name |
string
|
The name of the texture as it is defined in the main texture array of the scene.
|
uvScale |
number
|
vec2
|
Texture scale as single number or per axis.
|
scale |
number
|
The normal map scale/intensity
|
- Source:
-
geometryNormalMap :object
Apply texture with name 'name' as a normal map to a regular geometry.
Properties:
Name |
Type |
Description |
name |
string
|
The name of the texture as it is defined in the main texture array of the scene.
|
uvScale |
number
|
vec2
|
Texture scale as single number or per axis.
|
scale |
number
|
The normal map scale/intensity
|
- Source:
-
geometryTexture :object
Apply texture with name 'name' to a geometry.
Properties:
Name |
Type |
Description |
name |
string
|
The name of the texture as it is defined in the main texture array of the scene.
|
uvScale |
number
|
vec2
|
Texture scale as single number or per axis.
|
- Source:
-