9得票1回答
FbxSDK破坏了法线

我正在尝试导出一个蒙皮网格。但是如果我向网格添加一个蒙皮集群,FbxSDK会在片段边缘上破坏法线,而没有蒙皮时一切看起来都很好。 例如: 代码: FbxLayerElementNormal *layerElementNormal = FbxLayerElementNormal::Cre...

9得票1回答
计算高度图的法线

我在计算我的高度图法线时遇到了一些小问题。它表现出奇怪的行为。在较高和较低的点上,法线是正确的,但在中间它们似乎是错误的。它们受到一个点光源的照亮。 未修复的源已被删除。 编辑: 尝试了两种新方法: 这是每个面的法线。看起来很好,但你可以看到单个面。 Position normal =...

9得票1回答
LibGDX网格高度图法线和光照

我正在尝试在LibGDX项目中获取网格法线和光照效果。我已经从高度图纹理像素生成了纹理网格。问题是我无法正确地点亮法线。此外,我不确定在TerrainChunk类中是否正确设置了法线顶点。以下是主要类代码: package com.me.terrain; import com.badlog...

8得票5回答
正切线、副法线和其他与着色器相关的事项

许多映射技术,包括法线凹凸贴图、视差贴图等,都需要特殊的每个顶点切线空间基(切向量、法向量、副切向量/双切线)。 这意味着我的模型不仅应该导出顶点位置、纹理坐标和近似的每个顶点法线,还应该导出其中一个切线空间基向量(通常是切线),因为另一个可以在着色器中直接使用cross(tangent, ...

8得票5回答
Three.js:如何在负缩放后翻转法线

我已经克隆并翻转了一个对象,使用了负比例尺,导致了我的单面面孔被反转。我的问题是,如何翻转法线呢? 我不想使用material.side = THREE.DoubleSide,原因是:1)它不能正常工作(一些阴影从内部绘制),2)我想尽可能地保持性能,所以DoubleSide对我来说不是一个...

8得票1回答
使用四元数进行切线空间法线贴图——我遇到的问题

受Crytek演示如何使用四元数将正切空间存储在四元数中以减小顶点大小的启发,我得出了这样一个合乎逻辑的结论:如果你可以使用四元数来存储切线空间,那么你也可以在顶点之间使用lerp四元数,并直接使用它们来旋转法线。这将消除重新正交化切线空间向量或重构其中一个向量的需要,并且会削减每个片段矩阵向...

8得票1回答
从3D立方贝塞尔路径中获取一致的法线

我正在编写一个BezierPath类,其中包含BezierPoints列表。每个BezierPoint都有一个位置、一个inTangent和一个outTangent。 BezierPath包含从路径获取线性位置和切线的函数。我的下一步是提供从路径获取法线的功能。 我知道在3D中给定的任...

7得票2回答
在VBO中包含索引和法向量是否有意义?

我正在编写一个OpenGL渲染网格的插件。我的VBO里有一个顶点数组和一个索引数组。现在我想存储法向量。由于一个顶点被多个面共享并且具有不同的法向量,因此似乎我必须多次复制顶点,从而失去了索引的使用。 例如,要存储一个立方体,需要8个顶点和24个索引(每个面4个)。但是如果我想存储法向量,是...

7得票1回答
如何统一普通方向

我一直在尝试实现一个所有面法线都指向外部的网格。 为了实现这个目标,我从*.ctm文件中加载了一个网格,然后遍历所有三角形以使用叉积确定法线。如果法线指向负z方向,则翻转v1和v2(因此法线方向相反)。 完成后,我将结果保存到*.ctm文件中,并使用Meshlab查看。 在Meshlab中的...

7得票2回答
MeshLab:使用我自己计算的法线渲染obj文件

我正在尝试写一个带有顶点的obj文件。我会在我的代码中计算顶点法线,并将其写入文件。但是当我在Meshlab中尝试渲染这个文件时,它正确读取了顶点,但是当我去 'Render->Show vertex normals' 时,没有显示我计算的法线。相反,MeshLab计算自己的法线并显示它...