问题标签 [normals]

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

opengl - 计算四边形的顶点法线

可以说我有以下数组:

我这样填写:

现在一切都好了,我可以渲染一个四边形,纹理它,拉伸它等等。

但现在我想计算四边形的法线:

但是我无法弄清楚我到底应该如何计算一个简单的二维顶点数组的法线,该数组包含 GL_QUADS 的 4 个顶点或 GL_TRIANGLES 的 6 个顶点......

0 投票
2 回答
1673 浏览

xna - Normal for surface of a cube in XNA

Can anyone please help.

I have a cube which I have made in 3DS Max. I don't know the dimensions of the cube. Is there a way to get the vertices of each of the triangles of the faces of the cube? I am trying to get the normal to one of the faces of the cube to determine which way its pointing. So if I can determine the vertices I can get the normal for the face if I have 3 vertices, V1, V2 and V3, ordered in counterclockwise order, I can obtain the direction of the normal by computing (V2 - V1) x (V3 - V1), where x is the cross product of the two vectors.

I have looked in my models .fbx file and I can see a number of values there: Vertices: *24 { a: -15,-12.5,0,15,-12.5,0,-15,12.5,0,15,12.5,0,-15,-12.5,0.5,15,-12.5,0.5,-15,12.5,0.5,15,12.5,0.5}

PolygonVertexIndex: *36 { a: 0,2,-4,3,1,-1,4,5,-8,7,6,-5,0,1,-6,5,4,-1,1,3,-8,7,5,-2,3,2,-7,6,7,-4,2,0,-5,4,6,-3}

Are these my models vertices? Also, I would assume that Vertices: * 24 would be my list of vertices, but why is there only 24? Should a cube not have 36 vertices? And finally, if the coordinates for my vertices are PolygonVertexIndex: * 36 these values just seem off to me when I imagine the cube in my head with those dimensions?

Or alternatively, is there a automatic way to get the vertices of a cube without having to manually enter all the values for each vertex? I might have a couple of models to

Any help would be greatly appreciated

0 投票
1 回答
423 浏览

opengl - Java3d - 使用 GeometryInfo 的坏法线

我在 windows 中的 eclipse Indigo 下使用 Java3d。在最终修改 StlLoader 示例和 ObjLoad 类以加载我的 STL 文件后,我得到如下所示的结果(我认为从其他问题来看这些绝对是错误的矢量法线)。有人知道我为什么会遇到这个问题吗?我正在使用 SolidWorks 将 STL 保存为 ASCII 文件,并使用修改代码来加载 java3d.org 上给出的 STL 文件。虽然我只更改了一些外观属性并修复了损坏的导入等。我已经确认放入下面的“normList”的刻面法线与文件中的法线完全匹配。

结果示例:

在此处输入图像描述

来自http://www.java3d.org的 StlFile.java 片段:

0 投票
4 回答
1565 浏览

c++ - 法线在openGL中表现得很奇怪

我一直在为 openGl 编写一个 .obj 加载器。几何加载很好,但法线总是搞砸了。我尝试在 2 个不同的程序中导出模型,但似乎没有任何效果。据我所知,这就是您将法线放入 GL_TRIANGLES 的方式

(法线在其余代码中引用 GLfloats。)

编辑:这是一张法线断裂的等面体的图片在此处输入图像描述

这是完整的 obj 加载器代码和文件:

}

.obj 文件:

0 投票
1 回答
1242 浏览

objective-c - 在 OpenGL 中绘制法线的正确方法?

现在我正在用 OpenGL 编写一个程序。我正在从文件中渲染一些复杂的 3D 图形。在对代码进行三次检查后,我知道所有值都被正确读取。唯一表现怪异的是法线。我是这样画的:

这些值是从 GLFloats 中读取的。告诉我正确的方法,或者至少告诉我我做错了什么。

0 投票
2 回答
4154 浏览

c++ - 在 DirectX 11 中为着色器添加法线信息 - 法线在着色器中不可见?

我想为我的着色器添加法线贴图信息。我使用 DirectX 11 C++ SDK 中的教程 5 作为基础。

着色器创建的代码是(我只是为了确保我已经发布了所有重要信息,但我认为只有 D3D11_INPUT_ELEMENT_DESC 布局[] 很重要):

所以很简单,我将 D3D11_INPUT_ELEMENT_DESC layout[] 更改为(添加“NORMAL”行):

比我在盒子创建方法中更改了几行:

所以所有行中的最后一个 XMFLOAT4 都是正常的(这些是错误的法线并不重要,现在我只想让它在顶点着色器中可见)。

我还更改了 SimpleVertex:

我的着色器检查法线是否存在:

但效果只是一个黑盒子(即使 output.Color = input.Normal)。

所以有什么问题?我必须更改其他内容才能在着色器中获取法线信息?

0 投票
1 回答
757 浏览

cube - 使用三角形条创建平面阴影立方体

我对三角形条如何与法线一起工作并不完全确定。我想制作一个平面阴影立方体,所以我为制作立方体的三角形条带编写了顶点。这样可行。我用三角条做了一个立方体。问题是我将每个顶点的法线设置为立方体中心的相反方向。所以阴影很奇怪。我希望每一面都是纯色。知道如何设置法线来实现这一目标吗?

0 投票
2 回答
2765 浏览

opengl - 平滑圆锥法线

我正在尝试计算圆锥的平滑法线。在四处寻找代码示例和解释时,我总是遇到面部法线的方向。我在下面发布了几张我正在做的事情的照片。第一个 - 基本上只是标准化顶点位置 - 给了我相当平滑的阴影,但边缘“缺失”并且底面不是实心的。第二个有边缘,但阴影是平的(面法线),我的光没有正确地反射掉它们。

圆锥体由 GL_TRIANGLES 构建而成。

单击图像以获得更大的版本。


(来源:bantherewind.com


(来源:bantherewind.com

0 投票
1 回答
5744 浏览

opengl - 如何计算三角带中的NORMAL

我的 OPENGL 项目的照明有问题。我使用 ECLIPSE 在 c++ 上编程。我有一个由三角形带构成的地形。我的渲染代码如下:

我尝试对顶点使用法线,但我不知道如何计算 glnormal 函数的参数。然后我必须使用正常的脸。你能帮我解决这个问题吗?


是的,我需要按面法线,之后我必须按顶点法线:对于按面法线,我这样做 void HeightMap::Render(void) { int x = 0; 诠释 i = 0; glPushMatrix(); glRotatef(angle, xrot, yrot, zrot);//旋转对象 cout<<"valore di nrows è: "<getHeights(j); 浮动向量ba[3]={0.0,0.0,0.0}; 浮动向量cb[3]={0.0,0.0,0.0}; 浮动 xnormal = 0.0; 浮动正常 = 0.0; 浮动 znormal = 0.0; 浮动长度=0.0;

配方对吗?如何使用 normal 和 normalize 函数转换渲染?

0 投票
1 回答
554 浏览

c# - 补丁法线算法

我正在努力重现一个名为“patchnormal”的 MATLAB 算法,它首先计算所有面的法线向量,然后根据面的角度加权的面法线计算顶点法线。(见下图)

在面向此类数学用途的 WPF C# 中似乎没有可用于 3D 网格的免费库。或者有吗?

所以问题是: 如何为我的所有顶点计算这个(红色)向量?是否可以对其进行优化以用于实时仿真?

PatchNormal 插图图像
(来源:hostingpics.net