javascript - secundarias - zonas erogenas pdf
¿Cómo hacer un mapa normal en THREE.js correctamente? (1)
¿Intentó agregar esto?
geometry.computeTangents();
Solo traté de aplicar la demo Normal map Ninja a un cubo en mi escena con el siguiente código - usando la nueva versión más reciente de Three.js desde la rama dev:
// common material parameters
var ambient = 0x050505, diffuse = 0x331100, specular = 0xffffff, shininess = 10, scale = 23;
// normal map shader
var shader = THREE.ShaderUtils.lib[ "normal" ];
var uniforms = THREE.UniformsUtils.clone( shader.uniforms );
uniforms[ "enableAO" ].value = true;
uniforms[ "enableDiffuse" ].value = false;
uniforms[ "enableSpecular" ].value = false;
uniforms[ "enableReflection" ].value = true;
uniforms[ "tNormal" ].texture = THREE.ImageUtils.loadTexture( "normal.jpg" );
uniforms[ "tAO" ].texture = THREE.ImageUtils.loadTexture( "ao.jpg" );
uniforms[ "tDisplacement" ].texture = THREE.ImageUtils.loadTexture( "displacement.jpg" );
uniforms[ "uDisplacementBias" ].value = - 0.428408 * scale;
uniforms[ "uDisplacementScale" ].value = 2.436143 * scale;
uniforms[ "uDiffuseColor" ].value.setHex( diffuse );
uniforms[ "uSpecularColor" ].value.setHex( specular );
uniforms[ "uAmbientColor" ].value.setHex( ambient );
uniforms[ "uShininess" ].value = shininess;
uniforms[ "tCube" ].texture = reflectionCube;
uniforms[ "uReflectivity" ].value = 0.1;
uniforms[ "uDiffuseColor" ].value.convertGammaToLinear();
uniforms[ "uSpecularColor" ].value.convertGammaToLinear();
uniforms[ "uAmbientColor" ].value.convertGammaToLinear();
var parameters = { fragmentShader: shader.fragmentShader, vertexShader: shader.vertexShader, uniforms: uniforms, lights: true, fog: false };
var displacementMaterial = new THREE.ShaderMaterial( parameters );
/*
var diamond = new THREE.Diamond({
material: bumpmapMaterial
});
*/
var diamond = new THREE.Mesh(
new THREE.CubeGeometry(50, 50, 50),
displacementMaterial
);
Sin embargo, recibo el siguiente error WebGL en Chrome:
GL_INVALID_OPERATION : glDrawXXX: attempt to access out of range vertices
En Firefox, no recibo un error como este, pero el cubo tampoco se muestra. Usando un MeshLambertMaterial
colores estándar, todo funciona bien. Entonces, tiene que haber un conflicto con el ShaderMaterial
. Si utilizo la última versión de Three.js de la rama MASTER, no mejora la situación; se produce el mismo error.
¿Alguna idea de por qué este puede ser el caso y lo que necesito cambiar para que funcione?