2012-05-29 3 views
0

3gs를 사용하여 조각 쉐이더를 호출합니다. 쉐이더는 재료에 색상을 지정하고 rgb로 나눠서 표시합니다. 색상을 임의의 값으로 지정합니다. 이것은 내가 지금까지 사용하고 코드 :three.js/webGL/GLSL - 무작위 수학 활용

gl_FragColor = vec4(color.r*.5, color.g, color.b, smoothstep(8000.0, -8000.0, gl_FragCoord.z/gl_FragCoord.w)); //MH - creates colors by multiplying color values 

이는 자바 스크립트이라면 분명히 이것은 GLSL 쉐이더 스크립트 내에서 작동하지 않습니다하지만 내가하고 싶은 것 무엇 :

gl_FragColor = vec4(color.r*Math.random(), color.g, color.b, smoothstep(8000.0, -8000.0, gl_FragCoord.z/gl_FragCoord.w)); //MH - creates colors by multiplying color values 
+1

임의의 숫자가 모든 조각마다 다르지만 프레임마다 변경되지 않겠습니까? 모든 조각에 대해 동일하지만 프레임간에 변경되기를 원하십니까? 아니면 둘 다 원하는가, 따라서 뷰어를위한 깜박이는 픽셀의 악몽을 생산합니까? –

+0

나는 어느 쪽이라도 추측한다. 흥미로운 소리로 깜박 거리는 소리의 악몽 =) 나는이 시점에서 실험하고있다. – mheavers

답변

4

쉐이더의 짝수 값에 대해서는 Ashima's WebGL noise library을 강력히 권장합니다. 그것은 x/y/z 값을 취하고 심플 렉스 노이즈를 방출합니다. 이는 프레임마다 안정적이라는 것을 의미합니다. 임의의 값을 필요로하는 경우 시간 변조 값을 노이즈 함수로 전달합니다.

+0

Perlin 노이즈 구현의 품질을 보증 할 수 있습니다. 저자 중 한 명이이 답변에 대해 더 자세히 이야기합니다. http://stackoverflow.com/a/9823712/19679 –