gpt4 book ai didi

opengl-es - 如何从 Blender 等 DCC 工具中获取 OBJ 文件中适当数量的顶点以用于 OpenGL ES?

转载 作者:行者123 更新时间:2023-12-02 00:34:53 25 4
gpt4 key购买 nike

有人告诉我,对于一个简单的立方体,当我想要 OpenGL ES 应用程序的颜色/纹理等时,我需要 36 个顶点,但是当我使用 Blender 将彩色立方体导出为 OBJ 格式时,我只得到 8 个顶点,而且我甚至不在 OBJ 中获取颜色数据,更不用说我在 OBJ 文件中只获取 8 条法线,但我需要每个三角形中每个顶点的法线(总共 36 条法线)。

这是我从一个立方体的 OBJ 文件中得到的内容,该立方体的所有面都涂有不同的颜色:

# Blender v2.56 (sub 0) OBJ File: ''
# www.blender.org
mtllib untitled.mtl
o Cube
v 1.000000 1.000000 -1.000000
v 1.000000 -1.000000 -1.000000
v -1.000000 -1.000000 -1.000000
v -1.000000 1.000000 -1.000000
v 1.000000 0.999999 1.000000
v 0.999999 -1.000001 1.000000
v -1.000000 -1.000000 1.000000
v -1.000000 1.000000 1.000000
vn 0.666646 0.666646 0.333323
vn 0.408246 0.408246 -0.816492
vn -0.408246 0.816492 -0.408246
vn -0.666646 0.333323 0.666646
vn -0.577349 -0.577349 -0.577349
vn -0.577349 -0.577349 0.577349
vn 0.816492 -0.408246 -0.408246
vn 0.333323 -0.666646 0.666646
usemtl Material
s 1
f 5//1 1//2 4//3
f 5//1 4//3 8//4
f 3//5 7//6 8//4
f 3//5 8//4 4//3
f 2//7 6//8 3//5
f 6//8 7//6 3//5
f 1//2 5//1 2//7
f 5//1 6//8 2//7
f 5//1 8//4 6//8
f 8//4 7//6 6//8
f 1//2 2//7 3//5
f 1//2 3//5 4//3

这是MTL文件的内容:

# Blender MTL File: ''
# Material Count: 1
newmtl Material
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
illum 2

最佳答案

一个立方体有 36 个顶点是不对的。可能但不必要。

顶点是一种空间坐标,由3个参数组成,x, y, z。
由于立方体有8个角,所以应该只有8个顶点。

顶点之后是纹理坐标,是在Blender中进行UV映射后得到的。

纹理坐标之后是索引。它们是连接顶点的顺序,决定了立方体的绘制顺序。

最后,还有用于照明效果的法线



在 Blender 中导出时,确保只突出显示那些:

上下文:
所有场景

输出选项:
三角测量、 Material 、UV、法线、HQ

Blender objects as OBJ:
objects

这会为您提供两个文件:OBJMTL

MTL包含纹理图像信息
而OBJ包含:

顶点的形式为:
v x, y, z
v x, y, z

纹理坐标,形式为:
vt x, y
vt x, y

指数,形式为:
f i/j k/l m/n
f i/j k/l m/n

成功获得导出的 OBJ 和 MTL 文件后,将它们与纹理图像一起添加到您的项目中,并使用 OpenGLOBJLoader 类在 iOS 中渲染它们。

关于opengl-es - 如何从 Blender 等 DCC 工具中获取 OBJ 文件中适当数量的顶点以用于 OpenGL ES?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5054239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com