Skip to content
Snippets Groups Projects
Commit 0e18eda5 authored by Alexander Rose's avatar Alexander Rose
Browse files

wip, color & lighting tweaks

parent 2d21bd7c
No related branches found
No related tags found
No related merge requests found
......@@ -70,7 +70,7 @@ export default function Spacefill(): UnitsRepresentation<SpacefillProps> {
const spheres = createRenderObject('mesh', {
position: mesh.vertexBuffer,
normal: mesh.normalBuffer,
color: { '@type': 'attribute', value: (mesh as any).colorBuffer },
color: { type: 'attribute', value: (mesh as any).colorBuffer },
transform: ValueCell.create(transformArray),
elements: mesh.indexBuffer,
......
......@@ -17,9 +17,9 @@ type Mesh = 'mesh'
type Uniforms = { [k: string]: REGL.Uniform | REGL.Texture }
type AttributeColor = { '@type': 'attribute', value: ValueCell<Float32Array> }
type InstanceColor = { '@type': 'instance', value: ValueCell<ColorTexture> }
type ElementColor = { '@type': 'element', value: ValueCell<ColorTexture> }
type AttributeColor = { type: 'attribute', value: ValueCell<Float32Array> }
type InstanceColor = { type: 'instance', value: ValueCell<ColorTexture> }
type ElementColor = { type: 'element', value: ValueCell<ColorTexture> }
type Color = AttributeColor | InstanceColor | ElementColor
namespace Mesh {
......@@ -42,7 +42,7 @@ namespace Mesh {
instanceCount: data.instanceCount,
..._uniforms
}
if (data.color['@type'] === 'instance' || data.color['@type'] === 'element') {
if (data.color.type === 'instance' || data.color.type === 'element') {
Object.assign(uniforms, createColorUniforms(regl, data.color.value as ValueCell<ColorTexture>))
}
const attributes = getBuffers({
......@@ -51,7 +51,7 @@ namespace Mesh {
normal: Attribute.create(regl, data.normal, data.positionCount, { size: 3 }),
...createTransformAttributes(regl, data.transform, data.instanceCount)
})
if (data.color['@type'] === 'attribute') {
if (data.color.type === 'attribute') {
attributes.color = Attribute.create(regl, data.color.value as ValueCell<Float32Array>, data.positionCount, { size: 3 }).buffer
}
const command = regl({
......
......@@ -45,17 +45,18 @@ float orenNayarDiffuse(vec3 lightDirection, vec3 viewDirection, vec3 surfaceNorm
#pragma glslify: attenuation = require(./attenuation.glsl)
const float specularScale = 0.65;
const float shininess = 10.0;
const float shininess = 30.0;
const float roughness = 5.0;
const float albedo = 0.95;
void main() {
// determine surface to light direction
vec4 lightPosition = view * vec4(light.position, 1.0);
// vec4 lightPosition = view * vec4(light.position, 1.0);
vec4 lightPosition = vec4(vec3(0.0, 0.0, -10000.0), 1.0);
vec3 lightVector = lightPosition.xyz - vViewPosition;
// calculate attenuation
float lightDistance = length(lightVector);
// float lightDistance = length(lightVector);
float falloff = 1.0; // attenuation(light.radius, light.falloff, lightDistance);
vec3 L = normalize(lightVector); // light direction
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment