问题标签 [gouraud]

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 回答
234 浏览

glsl - 使用 gouraud 着色处理不输出任何内容

对不起,我是opengl es和处理下面的处理和着色器仅输出背景的新手

PShader Gouraud,Phong;

顶点着色器

片段着色器

请帮忙!在应用 gouraud 着色之前 在此处输入图像描述

应用 gouraud 着色后 在古洛之后

处理加载 obj 并绘制一个立方体并应用 gouraud 着色器,但之后只显示背景,加载了 obj 并且立方体消失了。没有显示!

0 投票
1 回答
3997 浏览

graphics - Phong 着色和 Gouraud 着色有什么区别?

据我了解,Gouraud着色计算每个顶点的光色并对该颜色进行插值,而Phong着色会插值每个像素的法线并根据该插值计算光色。

然而,当我试图从数学上推导出光色时,我最终得到了两种方式的相同公式!

我为此画的图

(其中n1n2是两个顶点的法线,t是插值的系数,L是光的方向,上面的平面和虚线表示屏幕和一个像素。)

两种方法的浅色派生如下:

  • 古洛:L = t*dot(n1,L) + (1-t)*dot(n2,L)

  • 蓬:L = dot(t*n1+(1-t)*n2,L)

结果是一样的。

谁能告诉我我的推导有什么问题?

0 投票
0 回答
64 浏览

javafx - JavaFX 中的 Gouraud 着色

每个面有 3 种颜色(每个顶点一种)。我想使用 Gouraud 着色来混合这些颜色。到目前为止,我从FXyz 库中获得了一些灵感。

我目前的方法使用setTextureModeVertices3DFXyz 库中的。但这使用密度图,这在我的情况下不起作用,因为颜色不是来自数学公式。我最初的想法是按如下方式实现它:

  1. 计算网格中每个顶点的颜色。
  2. 提取所有独特颜色的列表
  3. 制作独特颜色的调色板
  1. 以点值 (x,y,z) 为键并以颜色索引为值制作地图
  2. 制作一个从上述地图返回颜色索引的密度函数。

我有一种感觉,我唯一的选择是创建一个大图像,在其中放入所有阴影三角形,然后引用它们。但我不确定这里最好的技术是什么。任何帮助表示赞赏!

编辑:

这是我目前使用的代码(这是用 Kotlin 编写的):

  • 这就是我当前的阴影实现的样子。我目前的实现是如何使用阴影的
  • 这就是我当前的实现在没有阴影的情况下的样子。我目前的实现如何没有阴影
  • 这就是我希望我的阴影实现大致看起来像的样子我希望我的阴影实现大致看起来如何
  • 这就是我的调色板的样子(9x10 像素)(在此处输入图像描述