问题标签 [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 - OpenGL从定向/点转换为聚光灯
所以我目前正在尝试在我的顶点着色器中创建聚光灯,目前我可以通过使用 Phong 照明模型来产生定向和/或点光。
我发现很难计算聚光灯的正确角度,基本上只想要一个来自眼睛空间 0,0,0 并向下看 Z 坐标的聚光灯。
我试图让锥体中的所有东西(现在)都变成亮白色,而外面的所有东西都变暗
opengl - 环境光和镜面光在 GLSL 中无法正常工作
在我的照明场景中,由于某种原因,环境照明根本不起作用。整个模型无论朝向哪个方向都是一样的亮度。我试图摆脱衰减,但它仍然有相同的结果。除此之外,无论相机在哪里,镜面光总是会发光。它应该根据玩家的位置发光。这是环境问题的屏幕截图:Imgur.com
如您所见,球体背向灯光的部分(位于 [0.0,4.0,0.0])与面对灯光的部分颜色相同。环境因子应该是片段颜色的 0.2。
顶点着色器来源:
片段着色器来源:
glsl - 在我的着色器中实现 phong 着色(过度纹理)的错误
我正在尝试学习 webGL,尝试按照链接http://voxelent.com/html/beginners-guide/chapter_3/ch3_Sphere_Phong.html上的此示例代码实现 phong 着色
我在着色器编译时遇到两个错误,因此没有显示月亮,这应该是显示的,因为我正在关注 Github 的第 11 课,他们从矩形制作球体,我得到的错误是:
我的完整代码是:
编辑2:
如何使用 phong 阴影效果显示月亮。有人可以帮我吗?
directx-11 - 为什么我的着色器会产生不正确的镜面反射结果?[DX11]
我目前正在尝试使用 HLSL 和 DirectX 11 在纹理立方体上实现 Phong 着色和照明。我相信我的环境和漫反射照明计算是正确的,并且在视觉上它们会产生预期的结果。然而,当我应用镜面光照时,我得到了奇怪的结果(见链接)
漫反射、环境光和镜面反射:https ://i.gyazo.com/f7700d758e05227e27be91ab0cfdf64e.png
仅镜面反射:https ://i.gyazo.com/27bbfa0efce5c60748f61f54365cc042.png
我的 .fx 文件:
请原谅任何混乱的代码或变量名,我试图使用各种教程和教科书来让它工作,每个教程和教科书都有自己的命名约定,所以我的现在有点混乱。
编辑:使用答案和其他一些信息来源,我重新设计了我的着色器并让它工作。我的一个问题是常量缓冲区中的填充不正确。我还添加了切线空间计算并将凹凸法线正确转换为 -1 到 +1 范围
c++ - Blinn-Phong 照明 - 完整颜色的最佳计算是什么
我读过的几乎所有文章和书籍都指出最终颜色的组成是:finalColor = environmentColor + lambertianTerm *diffuseColor (= material color) + specularIntensity * specularColor (= light color)
以下是一些使用上述方法计算最终颜色的地方:OpenGL SuperBible 6th edition -> Rendering Techniques -> Lighting Models -> Blinn-Phong Lighting, Wikipedia -> Blinn-Phong shading model (参见片段着色器), 和别的。
最终颜色的计算存在一个问题:灯光的颜色(也考虑多光源的情况)不参与漫反射颜色的制定。考虑光泽系数很大的情况 - 比如说 128.0,因此镜面反射点很小,并且对象的大部分区域都使用漫反射项着色。还要让物体的颜色为绿色,而光的颜色为红色。如果没有环境颜色,上述方程的输出是一个部分点亮的纯绿色物体,上面有一个小黄点 = 绿色 + 红色 = 来自红色光源的光从绿色物体反射:
这是不正确的。当然,绿色 + 红色就是黄色,但可以肯定的是,您既不会看到纯绿色的球,也不会看到黄色的高光点。手里拿着一个闪亮的绿色球——例如台球比赛中的大 6,然后用红灯点亮它——我可以向你保证,你不会只看到绿色漫反射和黄色镜面反射。相反,您会看到混合的绿色 + 红色用于漫反射和更多红色镜面反射点。到目前为止我找到的计算最终颜色的最佳方法 - 平均混合:
……但看起来不太好。可能光线和物体的颜色应该以另一个线性比例混合:
...或者以我无法想到的非线性方式。
所以最后一个问题:完整颜色的最佳计算是什么?另外,如果我遗漏了什么,请告诉我,但在我看来,纯绿色图片 + 纯黄色镜面高光完全不是真实世界的场景。
shader - Blinn-Phong shading with HLSL and D3D11: point light
I am currently trying to implement point lights in my game using Blinn-Phong shading in HLSL. The tutorial I followed is linked here.
The code I have now is:
The problem can be seen in this photo:
Note that the frames are deliberately not in order and I tried to capture them so that the bug could be very clear to understand.
The asteroid is a simple model which orbits around the origin of the point light. The specular light should be uniform on all faces and pixels, but as you can see, if the mesh is located in front of the camera, the reflected light forms a sharp shape on it.
I also realised that my code is wrong and if I remove the specular light from the equation, the problem disappears. Can anybody explain me what is happening here and how could I solve this problem? Thank you in advance.
c++ - Phong - 两侧的半向量镜面反射
实现 PhongModel 着色时。镜面反射项出现在几何体的两侧。使用半向量计算镜面反射项。
在前面的输出图像中,它似乎计算正确。光在相机后面,物体在相机前面。
[光……相机……物体]
但是当去另一边时,即使没有漫反射项,我仍然会得到一些镜面反射,我不确定我是否应该这样做。在下面的图片中,物体和灯光都在相机前面,灯光在物体后面。
[相机……物体……光]
我想也许镜面反射应该乘以符号(fLDotN)?但结果似乎并不好。一般是怎么处理的?
我的猜测是我是
光照均匀位置在相机空间中设置:
具有法线和半向量的结果图像: Phong Specular+Diffuse Results
顶点着色器
片段着色器
opengl - 如何在 OpenGL 中为 Phong 着色插入法线?
目前,我正在实施良好的旧 Phong 着色。总体而言,它看起来很正确,但出现了一种常态,我无法解释。
我认为,如果不仔细观察,斯坦福兔子看起来很正确。
在这张图片中,我可视化了法线并提高了饱和度以使问题更加明显。
这是我的顶点着色器:
这是我的片段着色器:
有人可以解释这种行为吗?
graphics - Phong Shading Illumination 模型中材质的颜色
我正在使用 Phong 公式作为参考来实现照明模型。我还不太清楚如何适当地渲染不同颜色的材料。我没有使用纹理。给定一个光点,我对每个像素使用的基本方程如下所示:
每个方程的最大值是 3,因为每个包裹(例如 Ia.R*ka.R)最多为 1。我调整结果,所以每个分量(Result.R、Result.G 和 Result.B)都保持不变在 0 到 255 的范围内。
它并不是完全这样编程的,因为当有多个点光源时,我会计算 Result 中所有光源的漫反射和镜面反射分量的总和。Ia*ka 组件不会改变。不是将上面除以 3,而是除以另一个数字(如果有 2 个点灯,则除以 5。如果有 3,则除以 7,依此类推)。
这种实现允许我通过 ka、kd 和 ks 系数来控制材质颜色。整体光色由 Ia 和 P.IL 控制。我一直在关注的模型与我在 Wikipedia 上找到的模型相似。
那时我想知道我是否犯了某种错误,是否误解了 Phong 的表述。我知道 Phong 的照明模型有很多版本,但我想了解哪些版本可以更改材质和灯光颜色。
在此先感谢,感谢所有的关注和帮助:)