问题标签 [lighting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
962 浏览

opengl - 如何使混合与照明和材料一起工作?

我应该更改哪个 alpha?漫反射、镜面反射还是环境光?

0 投票
1 回答
6344 浏览

opengl - OpenGL glEnable(GL_COLOR_MATERIAL) 后跟 glDisable(GL_COLOR_MATERIAL)

同时,我在纹理立方体旁边绘制了一个顶点彩色立方体,使用glDrawArrays(), 并发现启用照明后,纹理立方体变得“稍微亮一点”。

经过一些调试,我发现glEnable(GL_COLOR_MATERIAL)调用的第一个时刻,即使glDisable(GL_COLOR_MATERIAL)随后立即调用,也会对纹理立方体产生“稍微亮一点”的效果!

这是简短的描述:

如果glEnable(GL_COLOR_MATERIAL)根本没有调用,则用黄色绘制立方体。而如果glEnable(GL_COLOR_MATERIAL)被调用,即使后面跟着glDisable(GL_COLOR_MATERIAL),立方体也会被画成稍微亮一点的黄色,我无法切换回“最初的深黄色立方体颜色”。

你能告诉我这是否是预期的行为吗?

0 投票
1 回答
1327 浏览

macos - Mac OS X 10.6 中的 OpenGL 对象有光泽/有光泽,但不是 10.5。为什么?

我为 Mac OS X 10.5 及更高版本编写了一个 OpenGL 屏幕保护程序,它显示了一个使用行进立方体构建的旋转心脏。它在我运行 Snow Leopard (10.6) 的黑色 13.3" 开发 Macbook 上运行良好,美观且有光泽。

但是当我在运行 leopard (10.5) 的较新的 Macbook Pro 上试用它时,心脏并不光滑。它看起来好像只用环境光/漫射光照亮,但没有镜面光。就好像我将光的镜面反射分量设置为 0。较新的 Macbook 有一个 Nvidia 显卡。运行 10.6 的较旧版本具有 Intel XMA3100。

这是我的 OpenGL 初始化代码。心脏是使用行进立方体创建的,我也在计算法线向量。

实际的绘图代码如下所示:

任何想法为什么镜面照明差异?某些显卡根本不支持镜面照明吗?任何指针都非常感谢。

0 投票
1 回答
1774 浏览

android - Android:在按钮上绘制图像

是否可以在另一个视图(如按钮)上绘制图像并且仍然让视图正常工作?即使上面有另一个图像,用户仍然可以单击该按钮。我想在我的布局上绘制一些主要是透明的 png 来获得照明效果,但我想确保一切仍然正常工作。

0 投票
3 回答
16196 浏览

matlab - 如何使用 MATLAB 校正图像中的不均匀照明?

我正在使用 MATLAB 在视频中执行特征检测。视频不同部分的光照条件不同,导致在将 RGB 图像转换为二进制图像时,某些部分会被忽略。

视频特定部分的照明条件也会随着视频的播放而变化。

您能否建议在 MATLAB 中平衡帧和视频的照明的最佳方法?

0 投票
1 回答
394 浏览

xna - (简单)2D 纹理(瓷砖)的阴影,在纹理后面

我正在使用 XNA 为 XBOX 360 开发应用程序。我试图保持它非常简单和地铁风格。

我的瓷砖排列如下: http: //gameplay-video.com/wp-content/uploads/2011/img_2462_xbox-360-dashboard-update-sceens-5th-dec-2011.jpg

我想要实现的是使用图片中的灰色/黑色背景,但具有相同的阴影。

我相信照明点在瓷砖后面,瓷砖本身不应该有内部阴影。但是,它们的底部应该有一个阴影,如图所示(底部的小黑线)

我不是 XNA 专家,这是我的第一个应用程序(atm 非常好),但我愿意学习。

0 投票
1 回答
321 浏览

opengl - OpenGL 光照和定位

我很抱歉,因为这似乎是一个非常简单的问题,应该很明显,但似乎我一无所知。

我正在编写一个引擎并使用 Light 0 作为场景的“太阳”。我认为,理想情况下,太阳将是一个固定的光源,而不是一个向量,所以位置向量中的 w/fourth 索引应该是 1.0f。

我设置了场景的正交视点,然后将灯光设置在角色的位置(x/y 是平面地形的坐标,正 z 朝向相机并指示地形上的“高度”——场景是也为 x 轴上的等距视图旋转)。

角色始终位于屏幕中央——但我注意到,出于某种原因,灯光似乎照射在角色和世界坐标 0,0,0 之间的位置。角色离世界坐标 0,0,0 越远,光线越大/越宽。如果角色位于 0,0,0,则光线非常小。如果角色移动到类似 0,200,0 的位置,则光线非常大。

我只是想弄湿我的脚,并让一个“光”跟随角色(然后调整位置等,然后创建一个太阳)。

Graphics.BeginRenderingLayer = PushMatrix, EndRenderingLayer = PopMatrix Video.MapRenderingMode = Ortho Projection and Scene Rotation/Zoom CenterCamera 会转换到 X/Y/Z 的反面,这样角色现在就以 X/Y/Z 为中心屏幕中间。

有什么想法吗?也许我在这里有点混淆了我的一些代码?

0 投票
1 回答
2402 浏览

c++ - 使用 GLUT 和 C++ 在 Open GL 中的材质属性帮助

对于 OpenGL 项目的照明部分,我目前正在为我的团队做这部分:

在第 1 部分中为模型定义材料属性。使您的材料定义易于替换。具体来说,机器人组件和遥控单元应该是“闪亮的”;各种颜色深浅的​​碎石堆应化解;主平台瓷砖应该是漫反射灰色。选择您自己的材料属性并为块、基地、工厂等正确记录它们。

我只是尝试在控制单元上应用“闪亮”效果,但效果不佳。我尝试放入一些示例照明,因为我们还没有放入任何(或者至少它不在存储库中)来测试它。结果是控制器的立方体部分反射了(虽然太白了,不管我尝试了什么,立方体的颜色都是灰色的),但圆柱体天线没有反射。(这些测试都不在存储库中,因为我无法提交不起作用的东西。)

基本上我需要关于材料属性和设置一些基本照明来测试它们的帮助(测试照明是暂时的,因为我的一个队友正在研究照明)。

如果有人可以帮助我完成这部分工作,我将不胜感激。

项目信息:

  • 我们项目的存储库(Visual Studio 2010 项目)
  • 地图/网格位于 xz 平面上,y 为高度
  • 一切都是使用 glCubes 或 glut 形状完成的,因此不需要为它们定义法线,只有一些瓷砖和到处的数字 4 是使用 gl_quads 完成的

如果我错过了任何内容或您需要更多信息,请询问!

0 投票
2 回答
7256 浏览

opengl - OpenGL定向照明+定位

我正在编写一个引擎并使用 Light 0 作为场景的“太阳”。太阳是定向光。

我设置了场景的正交视点,然后将灯光设置在屏幕的“东”侧(以及角色)(x/y 是平面地形的坐标,正 z 朝向相机并表示“高度” ” 在地形上——场景也为 x 轴上的等距视图旋转)。

光线似乎在 0,0,0 的“东方”处闪烁,但随着角色的移动,它不会移动(CenterCamera 在所提供值的负数上执行 glTranslate3f,以便可以映射指定世界坐标)。意思是,我越往西走,它总是黑暗的,没有光。

Graphics.BeginRenderingLayer = PushMatrix, EndRenderingLayer = PopMatrix Video.MapRenderingMode = Ortho Projection and Scene Rotation/Zoom CenterCamera 会转换到 X/Y/Z 的反面,这样角色现在就以 X/Y/Z 为中心屏幕中间。

有什么想法吗?也许我在这里有点混淆了我的一些代码?

灯光代码如下:

0 投票
2 回答
1025 浏览

android - OpenGL ES中的纹理上的镜面反射?

我试图在纹理映射的对象上获得镜面高光。据我所知,OpenGL 不计算纹理颜色(例如纯白色)的最终颜色的唯一直接方法是使用 call glLightModelf(GL_LIGHT_MODEL_COLOR_CONTROL,GL_SEPARATE_SPECULAR_COLOR),但这在 OpenGL ES 中不受支持。

那么,我该怎么做呢?我是否必须为镜面高光使用其他纹理,还有其他更简单的方法吗?

比你!

PS 我正在使用 OpenGL ES 1.x