2010-12-27 2 views
2

상기의 OpenGL ® 셰이딩 언어 사양 버전 1.20 http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf 다음 보여준다가 조작하기 gl_LightSource는 [gl_MaxLights]

lightDir = normalize(vec3(gl_LightSource[0].position)); 

https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html#5.10 많은 균일 도시 * 또한

struct gl_LightSourceParameters { 
vec4 ambient;    // Acli 
vec4 diffuse;    // Dcli 
vec4 specular;   // Scli 
vec4 position;   // Ppli 
vec4 halfVector;   // Derived: Hi 
vec3 spotDirection;  // Sdli 
float spotExponent;  // Srli 
float spotCutoff;   // Crli 
          // (range: [0.0,90.0], 180.0) 
float spotCosCutoff;  // Derived: cos(Crli) 
          // (range: [1.0,0.0],-1.0) 
float constantAttenuation; // K0 
float linearAttenuation; // K1 
float quadraticAttenuation;// K2 
}; 

    uniform gl_LightSourceParameters gl_LightSource[gl_MaxLights]; 

, http://www.lighthouse3d.com/opengl/glsl/index.php?ogldir1 다음 코드 단편을 도시 함수를 사용하지만 gl_LightSource [0]와 같은 균일 한 변수의 배열을 처리하는 것으로 보이는 것은 없습니다.

JavaScript를 사용하여 gl_LightSource [0] 필드를 WebGL에 어떻게 설정합니까? 예 : gl_LightSource [0] .position

미리 도움을 주셔서 감사합니다.

참고 : http://www.khronos.org/message_boards/viewtopic.php?f=43&t=3373

답변

3

WebGL을에 크로스 게시물의 OpenGL ES 2.0을 기반으로 - 즉, 휴대 전화와 같은 제한된 하드웨어에 대한 설계는 OpenGL의 버전입니다 - 그리고 밖으로 상자의 조명을 지원하지 않습니다; 직접 코딩해야합니다. 나는 어떻게하는지 설명하는 some tutorials (NeHe OpenGL에 주로 의존하고 있음)을 작성했다. 귀하의 질문에 따라, 그들은 아마도 당신을 위해 조금 기본적인 것입니다,하지만 7과 12 수업은 아마도 당신에게 유용한 포인터를 줄 것이다.

관련 문제