问题标签 [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 投票
1 回答
259 浏览

opengl - 如何将红色添加到绿色并变黑?

仅漫反射 仅镜面反射 漫反射加镜面反射

这是我的顶点着色器:

这是片段:

以下是相应的光强和反射系数:

LightIntensity = spec;我看到应该发光的绿色三角形而其余三角形是黑色时。当LightIntensity = diffuse;我在所有三角形上看到非常漂亮的漫射红色阴影时,光线落在并反射到相机位置。但是当我写LightIntensity = /*ambient +*/ diffuse + spec;三角形时,只有在镜面着色的情况下才会变黑。这是我的问题:如何将红色添加到绿色并变成黑色?为什么当我在 Phong 着色颜色中添加镜面光照时,没有正确添加?

0 投票
0 回答
186 浏览

opengl - 当我旋转模型视图矩阵时,我的灯光位置是否应该保留并且只有模型会旋转?

这是我如何旋转模型视图矩阵的代码片段:

据我所知,模型视图矩阵是负责从模型坐标到眼睛/相机坐标系的变换矩阵。

因此,如果我有两件制服,例如:

我使用 GLSL 来计算 ADS Phong 着色,我的模型应该旋转,但光线应该保持在同一位置,对吧?

抱歉,代码不可编译,但我问的是一般概念,希望这能给你足够的信息来给我建议。谢谢!

0 投票
1 回答
275 浏览

graphics - Phong 照明产生黑色

我想我不知何故陷入了一个基本问题,我只是没有得到正确的答案。

Phong 照明模型包含环境、漫反射和镜面反射部分。

每个部分都包含光的颜色(环境光或光源)与系数(环境光、漫反射、镜面反射)的乘积:I * coe

光和系数由 r,g,b 颜色通道组成:

假设一盏灯是绿色的 (0,1,0) 并且系数(不管哪个)是蓝色的 (0,0,1),结果将是黑色的 (0,0,0)。

这有什么意义?

0 投票
1 回答
1426 浏览

javascript - THREE.js:模拟MeshBasicMaterial同时允许彩灯

我正在使用three.js 制作一个地牢爬行类游戏。我正在使用 MeshBasicMaterial 使所有东西都“真正明亮”,以使地牢始终可见。但是,我想在门口或墙上的缝隙下添加“奖励”灯以营造氛围。但是 BasicMaterial 上不显示灯光,所以我切换到 Phong 来测试我地板上的灯光。现在我的地板是黑色的!很可能是因为没有全局光。

有什么方法可以模拟 MeshBasicMaterial 的属性同时允许不同颜色的灯光?地牢的四个面都是封闭的,所以我想放置一个非常大的全局光会在各处投射阴影或覆盖地面的颜色。

不是我的问题的主要焦点,但另外:我如何做到让光线被墙壁挡住而不是仅仅穿过它们?墙壁只是由映射系统生成的 1x1x1 3d 网格立方体。

使用 MeshBasicMaterial

使用 MeshPhongMaterial

使用 MeshPhongMaterial

0 投票
1 回答
578 浏览

javascript - 使用滑块更改 Phong 着色器的值

我正在尝试使用 WebGL 和 Javascript 实现 3D 场景。最后一个场景应该显示一个长方体,四面都是较小的长方体、金字塔和球体。较小的球体必须与大长方体一起旋转。我实现了 Phong Shading,效果很好。现在我想用显示场景的画布右侧的三个滑块更改shininesslightPos和的值。lightIntensity闪亮的滑块显然不起作用,我更加纠结于其他两个滑块,因为lightPos它们lightIntensityvec3常量。三个变量的代码如下所示:

目前,光泽度滑块如下所示:

我很确定我做错了什么,但一项研究没有产生任何结果,我不知道下一步该做什么,所以我非常感谢你的帮助。如果您需要完整的代码,请告诉我。

0 投票
0 回答
97 浏览

c++ - Phong 闪电模型照亮角落

我正在尝试在这个cpp 框架中实现 phong 闪电模型。

扩散效果很好,但镜面反射似乎照亮了球体的角落……我不太确定为什么,因为公式似乎是正确的。有人有想法吗?

实际输出:

在此处输入图像描述

我的代码如下所示:

我非常感谢你能给我的任何提示......

0 投票
2 回答
781 浏览

opengl - Phong 光照:单独添加镜面光照还是与环境和漫反射一起添加?

我正在尝试实现 Phong 照明。在一些教程中,镜面光照被添加到环境光照和漫反射光照中,然后总光照乘以纹理颜色。我还看到了一个教程,其中在添加环境光和漫反射光与纹理颜色相乘后,分别添加了镜面光照。

这是一个片段着色器,其中包含两个选项和屏幕截图。

  • 选项 1. 高光添加到环境和漫反射

    在此处输入图像描述

  • 选项 2. 单独添加高光。

    在此处输入图像描述

在这些截图中,shineDump 值为 32.0f,specularStrength 为 0.5f。

哪一个看起来正确?在我看来,与第一个选项相比,第二个选项看起来是正确的,但是很多教程都使用第一个选项中的公式。

0 投票
0 回答
67 浏览

android - threejs:有谁知道最近(牛轧糖)Android 智能手机版本上的 phong/标准着色支持发生了什么?

即MeshPhongMaterial、MeshStandardMaterial。这些材质现在呈现为黑色。

示例: https ://threejs.org/examples/#webgl_animation_skinning_blending https://threejs.org/examples/#webgl_geometry_teapot

在最后一个示例中,只有“线框”和“平滑”的阴影菜单适用于许多最近的低成本手机。这是因为这些手机不支持 GLSL 吗?制造商禁用支持是 GPU 问题还是电池寿命问题?

抱歉,如果这里的某个地方已经有很长的解释性线程;我找不到它。

0 投票
1 回答
360 浏览

opengl - 在 Phong Shading 中组合材质系数和纹理

我正在尝试实现一个简单的 Phong 着色器,它支持非基于物理的材质和纹理。即使材质对每个光分量都有纹理,我仍然希望各自的材质系数产生一些效果。我的疑问是如何处理这两个问题。我应该混合、相乘还是相加?现在我已经将它们相乘:

看起来有点暗,这是结合材质系数和纹理的正确方法吗?

0 投票
0 回答
143 浏览

opengl - OpenGL Phong 着色

我想渲染对象以查看盒子的内部。

我使用了 Phong 着色。

当我用 绘制对象时glPolygonMode(GL_FRONT_AND_BACK, GL_LINE),图像如下所示:

在此处输入图像描述

但是当我使用glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)时,图像看起来像这样:

在此处输入图像描述

我只想遮蔽矩形部分。所以我想看看盒子里的物体。这是片段阴影代码,我认为它运作良好。但我不知道为什么我看不到里面。