在第三方应用程序中可视化法线?
Visualize normals in third party application?
我正在为 3D 模型编写一个导出器,可以在 PDF 中查看(即使用 PRC 格式),目前我正在尝试弄清楚如何正确地将法线写入该格式(没有真正解释)在规范中非常好)。我创建了一些非常简单的模型(在 OBJ 中),仅由几个三角形组成,具有垂直和非垂直法线。然而,当我将 PRC 添加到 PDF 以在 Adobe Reader 中查看时,它们看起来不对(根据光线如何判断它们)。
现在我想知道是否有某种工具或调试实用程序可以让我拦截 Adobe 渲染的数据并以某种方式可视化法线(或至少获得数字)?我想如果我真的能看到法线的走向(如果它们确实指向正确的半球)那么它可能对我弄清楚如何正确编码数据有很大帮助。
我在 Windows 10 上并且有一个 nvidia 显卡 (GTX 970),Adobe 似乎使用 DirectX 9,我使用 Visual Studio 2012(但我也安装了 VS 2015 ,只是没有在我的项目中使用它(还),因为它似乎有非常高的内存占用)。
这是我的一个简单模型如何在 Adobe(紫色)和我的测试应用程序(顶部显示我的应用程序中的法线)中呈现的示例:
即使您从 Adobe 获取 vertex buffer
,您也必须知道其格式才能提取 normals
。所以对于这样的任务来说似乎太复杂了。
通过颜色猜测法线要快得多(假设颜色是 normal
和 light direction
之间角度的直接比例)。
使用HSV颜色模型:
点值 (V
):
- N1: 58
- N2: 54
- N3: 15
- N4: 27
- N5: 14
- N6: 18
使用这个值我们可以说:
- 使用的Adobe Shader的颜色与
Normal
不成正比。也许其他视觉风格会更好。
N6
~N5
~N3
。所以我会交换法线 N6
和 N4
.
N4
有不同的颜色(可能值是错误的)。也许你必须将它们归一化。
我正在为 3D 模型编写一个导出器,可以在 PDF 中查看(即使用 PRC 格式),目前我正在尝试弄清楚如何正确地将法线写入该格式(没有真正解释)在规范中非常好)。我创建了一些非常简单的模型(在 OBJ 中),仅由几个三角形组成,具有垂直和非垂直法线。然而,当我将 PRC 添加到 PDF 以在 Adobe Reader 中查看时,它们看起来不对(根据光线如何判断它们)。
现在我想知道是否有某种工具或调试实用程序可以让我拦截 Adobe 渲染的数据并以某种方式可视化法线(或至少获得数字)?我想如果我真的能看到法线的走向(如果它们确实指向正确的半球)那么它可能对我弄清楚如何正确编码数据有很大帮助。
我在 Windows 10 上并且有一个 nvidia 显卡 (GTX 970),Adobe 似乎使用 DirectX 9,我使用 Visual Studio 2012(但我也安装了 VS 2015 ,只是没有在我的项目中使用它(还),因为它似乎有非常高的内存占用)。
这是我的一个简单模型如何在 Adobe(紫色)和我的测试应用程序(顶部显示我的应用程序中的法线)中呈现的示例:
即使您从 Adobe 获取 vertex buffer
,您也必须知道其格式才能提取 normals
。所以对于这样的任务来说似乎太复杂了。
通过颜色猜测法线要快得多(假设颜色是 normal
和 light direction
之间角度的直接比例)。
使用HSV颜色模型:
点值 (V
):
- N1: 58
- N2: 54
- N3: 15
- N4: 27
- N5: 14
- N6: 18
使用这个值我们可以说:
- 使用的Adobe Shader的颜色与
Normal
不成正比。也许其他视觉风格会更好。 N6
~N5
~N3
。所以我会交换法线N6
和N4
.N4
有不同的颜色(可能值是错误的)。也许你必须将它们归一化。