gpt4 book ai didi

webgl - 操作 gl_LightSource[gl_MaxLights]

转载 作者:行者123 更新时间:2023-12-04 06:38:48 24 4
gpt4 key购买 nike

The OpenGL® Shading Language Spec version 1.20 http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf显示以下内容:

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显示以下代码片段:
lightDir = normalize(vec3(gl_LightSource[0].position));

https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html#5.10显示了许多uniform* 函数,但似乎没有处理像gl_LightSource[0] 这样的uniform 变量数组。

我们如何设置 中的 gl_LightSource[0] 字段WebGL 使用 JavaScript?例如,gl_LightSource[0].position

在此先感谢您的帮助。

注意:交叉发布 http://www.khronos.org/message_boards/viewtopic.php?f=43&t=3373

最佳答案

WebGL 基于 OpenGL ES 2.0——即为手机等受限硬件设计的 OpenGL 版本——并且不支持开箱即用的照明;你必须自己编码。我写了 some tutorials (主要是基于 NeHe OpenGL 的),它解释了如何做;鉴于您的问题,它们对您来说可能有点基础,但第 7 课和第 12 课可能会给您一些有用的提示。

关于webgl - 操作 gl_LightSource[gl_MaxLights],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com