问题标签 [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.

0 投票
0 回答
4258 浏览

opengl - GLSL Phong 阴影不起作用

我正在尝试将本教程用于每个片段的着色并将其调整为 GLSL #version 140。我得到的结果显然不正确。在我看来,我对提供的法线做错了,因为在同一平面上彼此相邻的某些三角形上的明暗之间存在直接变化。

在此处输入图像描述

顶点着色器代码:

片段着色器:

C++ 代码(制服):

0 投票
0 回答
2178 浏览

three.js - ThreeJS:Phong 材质的凹凸贴图是否使用 UV 贴图?

我疯狂地尝试在 ThreeJS (r61) 中处理 PhongMaterial 的 bumpMap。漫反射和法线工作正常。这是我的代码:

我尝试将bumpScale修改到任何极端,根本没有改变。

凹凸贴图是否默认使用我的对象加载的 uv 贴图?我只能找到使用平面或球体等原始几何形状的示例。

纹理对象的 UVMapping 属性有什么用?

任何提示表示赞赏!谢谢。

0 投票
0 回答
316 浏览

c++ - 使用 ASSIMP 和 Phong 着色的 3D 模型太大(圆柱)时,漫反射法线反转

目前,我正在在 Blender 中创建并通过 assimp 加载的 3D 场景中设置一些照明,并设置了以下选项:

目前,我在程序中遇到了一个非常奇怪的故障。我正在片段着色器上实现Phong 着色以用于具有以下属性的照明:

  1. 每个模型都设置了纹理。
  2. 每个模型都有从模型加载的法线向量(对它们进行了一些预先计算,可能是因为 aiProcess_GenSmoothNormals 标志)
  3. 镜面光作用于所有物体。
  4. 漫反射颜色可以正常工作。

但是,管道对象是不同的:漫反射颜色始终位于应该被照亮的管道的另一侧,而镜面反射光位于正确的一侧。这让事情变得很奇怪,因为镜面反射光正常工作,而漫反射分量总是在错误的一侧。当我在搅拌机中将 cilinder 对象缩放到某个点之外时,我注意到了这种效果(较小的缩放 cilinder 仍然可以正常工作),因此将 cilinder 对象缩放到某个阈值之外可能与此有关。

在我的场景中,管状物体具有有效的镜面反射分量,但漫反射颜色位于光源的另一侧。 漫反射法线不起作用,而镜面反射是

在搅拌机中看到的法线 在搅拌机中看到的法线

我的第一个猜测是它与法线缩放有关,但我已经在顶点着色器中为此目的使用了法线矩阵,并且场景中的其他对象工作得很好。

顶点着色器:

片段着色器:


编辑

我添加了一个几何着色器,该着色器在第二个绘图通道中显示所有顶点法线以进行调试。但是,当显示法线时,它们会随着相机的移动而轻微移动,这是不应该的。我猜这可能是我之前提到的问题的原因。

我制作了一个小视频来说明正常运动:显示正常运动问题的 Youtube 视频。

视频显示随着相机移动,粉红色法线会改变方向。这不应该是这种情况,我不知道为什么。它是不正确的法线矩阵还是 assimp 错误地加载了法线?

0 投票
2 回答
1985 浏览

opengl - 镜面高光取决于相机距离

我只是尝试实现镜面高光。问题是当远离表面时,高光变得越来越强,高光的边缘变得非常刺眼。当移动太靠近表面时,高光会完全消失。

这是我的片段着色器的相关部分。所有计算都在视图空间中。我使用定向太阳光。

这是我的照明缓冲区的屏幕截图。你可以看到最前面的桶根本没有镜面高光,而远处的桶则过于强烈。中间的枪管根据需要点亮。

远高光太强,近高光消失

我究竟做错了什么?

0 投票
1 回答
1385 浏览

javascript - 3d 法线贴图在 Three.js 中无法正常工作

我想在我的网格中添加一个法线贴图,当我应用它时,模型变得平坦而不平滑,我没有得到我想要的效果。

这是我的材料代码:

如何正确设置法线贴图?

如果这意味着什么,法线贴图在 TIF 中。(我认为不是,但以防万一)

0 投票
0 回答
1154 浏览

opengl - Phong 光照模型的阴影

我正在寻找关于如何在 Phong 照明模型中表示阴影的描述。您可以在这里查看 Phong 着色:http
://en.wikipedia.org/wiki/Phong_shading 我认为很多人可能在不知不觉中熟悉它。

那么问题来了:我已经在我的图形程序中实现了阴影映射,现在我想知道如何应用阴影,我的片段着色器中有以下内容:

我目前遵守以下限制:

  • 阴影是转换为灰度的原始颜色。
  • 阴影没有镜面反射分量。

我首先想知道这是否是一个正确的模型,其次是一个具体的问题:
是否应该在阴影中考虑漫反射照明?

0 投票
2 回答
945 浏览

android - 顶点着色器中的 Phong 光照

我正在尝试使用适用于 Android 的 OpenGL ES 2.0 来显示具有法线和颜色的简单立方体。为此,我创建了一个着色器程序,附加我的顶点和片段着色器,并链接我的程序,如下所示:

最后它崩溃了,打印到LogCat:glUseProgram: glError 1281我检查了文档,glError 1281,即GL_INVALID_VALUE如果程序既不是0也不是OpenGL生成的值时生成。

在谷歌搜索了大约 10 个小时之后,我决定向 StackOverflow 寻求帮助。知道我的顶点着色器代码有什么问题使 glUseProgram 以这种方式运行吗?

这是我的顶点着色器代码,我尝试实现 phong 照明:

0 投票
1 回答
514 浏览

graphics - 通过示例了解小规模 Gouraud 着色

我正在上计算机图形学课程,刚刚通过了关于 Phong 和 Gouraud 着色的讲座。我真的不明白在说什么,所以我转向教科书进行澄清,并找到了一个可能对我有所帮助的可行示例。我想和大家讨论这个例子。

该示例说:

顶点具有以下 RGB 颜色:

点 (a.) (30,30) 和点 (b.) (45, 30) 的 RGB 颜色是什么?

为一个)

我假设 A 和 B 的 R 和 B 值 - 它们是相同的,然后,因为 30 正好在 10 和 50 之间……取 A 和 B 对 G 的颜色值的平均值。

所以 (25, 135, 30) 是点的颜色值。我将在下一个问题中使用这个值——所以我们称之为 M 点。

对于 (b)

我们唯一拥有 30 作为 y 坐标的点是 C。点 M 位于 (30,30)。所以,因为 (30,30) 和 (60,30) 具有相同的 R 和 B 值......我假设它们对于 (45, 30) 是相同的。同样,我们只是平均 G 值,因为 45 正好在 30 到 60 之间。

所以答案是 (25, 125, 30)。

所以我的问题是 - 这是正确的吗?如果是这样 - 这就是插值的意思吗 - 这种......平均?Phong 着色与此有何不同?

0 投票
1 回答
5426 浏览

c++ - 光线追踪 - 反射

我现在正在研究光线追踪器,反射部分。我的一切工作正常,包括创建一个带阴影的球体。现在,我正在实现反射部分。但是,我无法得到它。我的算法如下:

我试图获得反射但无法获得它,谁能告诉我我的 traceRay 函数算法是否正确?

0 投票
0 回答
788 浏览

android - 在 LibGDX 中正确使用 phong 着色器

我正在尝试phongLibGDX. 如果我使用默认着色器LibGDX,场景如下所示: 使用默认着色器 但是我想将光影应用到场景中,如果使用phong着色器,就会出现问题。场景闪烁,看起来与原始场景非常不同。见下图: 使用 phong 着色器 所以,我的代码片段是:

shadowgen-vert.glsl:

shadowgen-frag.glsl:

phong-vs.glsl:

phong-ps.glsl:

我究竟做错了什么?