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

three.js - Three.js:将面法线从局部空间转换为世界空间

我有一个THREE.PlaneGeometry, 与ComputeFaceNormals(). 我使用这个几何体创建了两个网格,并对其应用了不同的旋转。我想计算相机和两个网格中心面法线之间的两个角度。它应该是 :

问题是我不知道如何使用three.js API在世界坐标(从几何和网格旋转)中获取网格法线

0 投票
2 回答
5228 浏览

c++ - 使用 Wavefront Obj 了解法线索引

我编写了一个无法正常工作的 C++ Obj 文件加载器。问题是在解析一个简单的 obj 文件时,如下所示:

我无法理解将法线传递给 OpenGL 的正确方法。我总是得到这样的结果:在此处输入图像描述

ObjLoader.h

ObjLoader.cpp

我应该如何重新组织法线以使其反映顶点的相同顺序?

0 投票
1 回答
486 浏览

map - 如何将法线贴图应用于网格的一部分?

这个问题说明了一切。我只想将法线贴图应用于网格的一部分(几个选定的面)。

当前的法线贴图都是 512 x 512 并且来自画布。

有什么方法可以做到这一点?

0 投票
1 回答
2090 浏览

matlab - matlab中的3维矩阵乘法

我有一个大小为mx nx的法线贴图3,其中每个像素都有一个法线向量 {Nx, Ny, Nz}。我想通过旋转矩阵独立地旋转每个法线向量。设R为大小为mx nx 3x的旋转矩阵3,其中每个像素都有一个大小为3x的旋转矩阵3

我想将每个像素的旋转矩阵乘以法线向量以获得旋转的法线向量。我正在寻找一种优化的方式来完成这项任务,因为循环遍历每个像素可能不是最好的方式。

请帮忙!!

0 投票
2 回答
602 浏览

3d - .obj 模型和法线

我已经在 Three.js 上工作了一个月,主要是学习它是如何工作的以及我能做什么。现在,我正在尝试通过上传汽车的 .obj 模型来举办汽车博览会。我的问题是,从某些角度看,汽车的某些面孔是不可见的,例如这张图片。

我同时使用 Maya 2012 和 Blender 2.5 来处理模型,试图面对法线或使其顶点化,但没有任何效果。对于上传,我在存储库中使用 .obj 和 mtl 加载器。

希望你能帮助我,在此先感谢。

https://f.cloud.github.com/assets/3899568/507362/4e3a7bf0-bd6e-11e2-8a54-47b1949bba69.jpg

0 投票
1 回答
3336 浏览

opengl-es - 按照 Nvidia GPU Gems 第 1 章设置 GLSL 海洋水着色器

我正在关注关于使用着色器进行水模拟的Nvidia GPU Gems 第 1 章。我正在尝试按照本章在 OpenGL es 2.0 (iOS) 中使用 glsl 创建海水着色器。

我能够按照本章中的描述创建几何波,但是在创建纹理法线贴图时我遇到了麻烦。本章对于实际渲染到纹理渲染目标的内容有些不清楚。我应该渲染法线贴图还是高度贴图?在文本中,它建议将法线作为 rgb 颜色渲染到目标,但同样,第 1.3 节“创作”下的图像 (b) 和 (d) 似乎表明应该将灰度高度图渲染到纹理目标. 本章还讨论了使用查找纹理作为纹理的 u 坐标,但我不清楚这如何适合渲染到纹理。是否有 2 种不同的纹理可供渲染?如果有人可以帮助澄清这些组件如何组合在一起,我将非常感激!

0 投票
1 回答
10049 浏览

vector - 试图从法线计算平面的斜率

我有一组用于 3D 网格上的点的 3D 法线向量,我需要计算每个点下方区域的斜率。我不知道该怎么做。我不需要 X 或 Y 斜率,我只需要所讨论点的总斜率(虽然公平地说,我不知道如何分别从 X 和 Y 斜率推导出总斜率,这是我的问题的一部分)。我确实看过这篇文章,但我无法真正理解它的正面或反面......矢量是向外的。如果有人可以向我解释这一点,我将不胜感激。

0 投票
2 回答
168 浏览

bitmap - 如何将生成的法线应用于位图?

我将“倒退”进行地形生成:我正在程序上生成地形及其法线。然后我生成一个地形位图,用作 2D 地图。这一切都正常工作并产生了我想要的结果。但是现在,2D 贴图有“平面”阴影——如何将地形生成的法线应用于 2D 生成的位图?

理想情况下,我想像“太阳”直接在头顶(在“正午”)一样应用照明。我搜索了这个和其他开发网站,以及一般的互联网,但没有找到任何特定于我需求的东西,只有理论和概念信息。

谁能告诉我如何做到这一点或指出我正确的方向?您不必提供代码(尽管伪代码会很好),但我只需要知道从哪里开始。我在我的游戏中使用 C#/XNA,但欢迎来自任何语言的想法。

0 投票
1 回答
1705 浏览

opengl - 从 3D 噪声计算每个顶点法线

我目前在 GLSL 中实现了一个 3D 噪声函数,用于置换球体的顶点以提供地形。我目前正在使用几何着色器来简单地计算每个面的法线(我也有镶嵌,因此我在这里这样做而不是顶点着色器)。现在我想计算每个顶点法线。

现在我看到了一些关于在置换平面网格时从噪声中计算法线的帖子,但似乎无法让它为自己工作。下面是我的镶嵌评估着色器的一个片段,它计算新顶点的位置。(这很好用)。

tePosition然后进入几何着色器,其中三个用于计算三角形的表面法线。我将如何使用它来计算所述顶点的法线?

我试图通过在两个小偏移处重新采样噪声来执行“邻居”方法tePosition(我将它们推回到球体上,然后用噪声值替换它们)。然后使用这两个新位置,我得到从 tePosition 到每个位置的向量,并使用叉积得到法线。然而,这导致许多区域是黑色的(表明法线是向后的),并且法线朝外的部分在球体周围似乎非常均匀(光照在光线的另一侧)。这是执行上述操作的代码:

我尝试改变theta值并改变它用于抵消的方式,这会导致不同程度的“错误”。

有人对我如何正确计算法线有任何想法吗?

0 投票
5 回答
7496 浏览

three.js - Three.js:负比例后如何翻转法线

我克隆了一个对象,然后使用负比例翻转了一个对象,这导致我的单面反转。我的问题是,我怎样才能翻转法线呢?

我不想使用 material.side = THREE.DoubleSide,原因是:1) 不能正常工作(一些阴影是从内部绘制的)和 2) 想保持尽可能多的性能。所以 DoubleSide 不是我的选择。

这就是我的对象翻转的方式。

提前致谢!