问题标签 [phong]
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.
opengl - Phong着色模型可以在固定功能管线OpenGL中实现吗?
Phong 着色技术在顶点处插入法线以实现平滑的着色效果。它通常与Phong 光照模型结合使用,并且可以在现代 OpenGL 中实现。但是,固定功能管道 OpenGL(旧版OpenGL)是否包括对它的支持?
c++ - 根据 Phong 模型着色时镜面反射的奇怪环
我正在使用 Phong 照明模型编写光线跟踪器和着色。在此示例中,我的材料没有任何环境术语。当我渲染时,我得到以下图像:
如您所见,镜面反射周围似乎有一个较轻的环。如果我完全禁用镜面反射并且只渲染漫反射,我会得到以下结果:
所以,这只有在我引入镜面反射时才会发生。我已经做过多次着色,我以前从未见过这种情况。整个着色代码如下(我规范化了一些比我需要的向量更多的向量,以确保这不是问题):
颜色写入 PPM 文件,每个像素都这样写入:
最后,材质定义如下:
我怀疑这可能与glm::clamp
. 如果我最后将我的代码更改为下面的代码,我会得到如下所示的调试渲染。
这个形状看起来非常熟悉这枚戒指的轮廓。因此我怀疑这可能是与钳位有关的问题,但无数小时的调试并没有让我走得更远。
TL;DR 我的镜面反射有一个奇怪的“环”(见第一张图片),我想知道如何摆脱它。
c++ - OpenGL - 如何使用 Blinn-Phong 着色模型为场景正确添加光照?
最近,我一直在尝试使用本网站中描述的 Blinn-Phong 着色模型为简单的 OpenGL 场景添加光照。
我试图尽可能地遵循本教程。然而,灯光似乎关闭了,尤其是在立方体的侧面,因为光源开始在前面移动。
我相信这与由于模型矩阵上的旋转或在照明着色器中做错了什么而导致法线的位置不在正确位置有关,但是,我不确定其中是否真的是原因。
顺便说一下,这里是源代码:
three.js - ThreeJS Phong 材质即将变暗
我正在加载一个 BM3 文件,其中包含(几何和)材料信息的定义,如下所示:
然后我使用 ThreeJS 创建一个 Mesh 对象和 MeshPhongMaterial。以下是按顺序排列的贴图:diffuseMap、normalMap、specularMap、refrationRatioMap、lightMap。MeshPhongMaterial 是使用上面的贴图创建的,除了 lightMap。
如果我加载这个网格,我会得到以下深色图像:
如果我将颜色属性更改为 (1,1,1)。我得到了一个更亮的橙色,但锅还是黑的。
但是,如果我在另一个应用程序中加载这个对象,它看起来像这样: 锅看起来很亮。在我看来,好像材料的金属/钢面处理不当,因为我尝试过的任何其他模型都是这种情况,它的零件看起来像钢。知道为什么材质会变暗(而应该以不同的方式呈现/更亮)吗?