标签: wavefront

Wavefront .obj文件支持动画吗?

如何将3D Studio动画模型导出为OBJ格式(如果可能)?结果文件会是什么样的?我怎么读?

3ds wavefront animated .obj

19
推荐指数
4
解决办法
4万
查看次数

Wavefront .obj文件的规格是什么?

我想为Blender的.obj文件编写一个解析器.文件格式似乎不言自明,但似乎也缺少一些数据.例如,一个简单的立方体(默认的Blender立方体)有8行顶点,但我希望看到36行(12个三角形形成一个立方体).

我认为,对我而言,混乱源于在direct3d中创建立方体的方式.Direct3d需要36个顶点才能形成立方体.所以我想我需要推断其他28个顶点.当尝试解析更复杂形状的顶点时,这种类型的猜测可能会导致问题.所以,我想如果我能找到文件格式的官方规格,它可能会让我对如何解释数据有所了解.

似乎其他人之前曾问过同样的问题:如何从BLC上的DCC工具中获取OBJ文件中适当数量的顶点,以便在OpenGL ES中使用? 但它对我没有任何有用的信息.

wavefront blender

17
推荐指数
1
解决办法
1万
查看次数

Wavefront的OBJ和MTL的MIME类型

我正在使用ThreeJS和WebGL构建一个小型3D应用程序.我故意选择不将模型转换为ThreeJS兼容的.json文件,而是开始构建导入器.它工作正常,但我还计划让应用程序决定使用文件扩展名和MIME类型加载了哪种类型的模型,如果第一个未知,则使用后者.

我已经读过MIME类型应该是的地方,application/wavefront-obj因为还有model树,所以会有点奇怪,但不管怎么说都没关系.虽然浏览IANA网站的此文件类型不会产生任何结果.

我错过了什么吗?

mime wavefront three.js

11
推荐指数
1
解决办法
9130
查看次数

将OBJ文件中的quadriladerals转换为三角形?

起初,它似乎很明显......无论在哪里找到4个指数,每个面都会生成2个三角形,对吧?
含义如下:

v 1.000000 1.000000 0.000000
v -1.000000 1.000000 -0.000000
v 1.000000 -1.000000 0.000000
v -1.000000 -1.000000 -0.000000
f -4 -3 -2 -1
Run Code Online (Sandbox Code Playgroud)

......反过来,需要转换为:

v 1.000000 1.000000 0.000000
v -1.000000 1.000000 -0.000000
v 1.000000 -1.000000 0.000000
v -1.000000 -1.000000 -0.000000
f -4 -3 -2
f -2 -3 -1
Run Code Online (Sandbox Code Playgroud)

当然,这个特定的例子可以正确呈现.
但是,并非所有情况都像将面分割成两个面一样简单(其中第一个面包含原始面的前三个顶点,第二个面包含最后3个顶点,如上例所示).以下面的多维数据集为例:

v 0.000000 1.000000 1.000000
v 0.000000 0.000000 1.000000
v 1.000000 0.000000 1.000000
v 1.000000 1.000000 1.000000
v 0.000000 1.000000 0.000000
v 0.000000 0.000000 0.000000
v 1.000000 0.000000 0.000000
v 1.000000 …
Run Code Online (Sandbox Code Playgroud)

java opengl graphics lwjgl wavefront

10
推荐指数
1
解决办法
3851
查看次数

在React VR中,光泽,发光和镜面反射不属于此材质

我正在使用React VR开发一个应用程序,我用搅拌器创建了一个3D pokeball.我将其导出为Wavefront .obj文件并在我的React VR应用程序中使用它.

在控制台中我看到了这个警告:

THREE.MeshBasicMaterial:shininess,emissive并且specular不是这种材料的财产.

您可以在下面找到我的代码:

import React from 'react';
import { AppRegistry, asset, StyleSheet, Pano, Text, View, Mesh } from 'react-vr';

class pokemongo extends React.Component {
  render() {
    return (
      <View>
        <Pano source={asset('sky.jpg')} />
        <Mesh source={{ mesh: asset('pokeball.obj'), mtl: asset('pokeball.mtl') }} 
              style={{ height: 1 }} 
              transform={{ rotate: '0 90 0' }}></Mesh>
      </View>
    );
  }
};

AppRegistry.registerComponent('pokemongo', () => pokemongo);
Run Code Online (Sandbox Code Playgroud)

这是渲染输出

这个GitHub Gist上你可以找到objmtl文件,你可以下载该blend …

wavefront blender webvr react-360

9
推荐指数
1
解决办法
308
查看次数

在波前对象文件(.obj)中我应该如何在opengl中渲染具有4个以上顶点的面?

因此,使用此处定义的wavefront对象文件:http: //en.wikipedia.org/wiki/Wavefront_.obj_file

我该如何渲染在opengl中有超过4个顶点的面.我承诺如果它有3个顶点我使用GL_TRIANGLES,如果它有4我使用GL_QUADS,但如果它有5或更多,我应该使用什么?有标准吗?在我的互联网搜索中我还没有能够提出任何东西和样本打开gl代码我发现只支持最多4个顶点.

c++ opengl polygon wavefront

7
推荐指数
2
解决办法
6917
查看次数

使用C++解析Wavefront .obj文件

在尝试解析wavefront .obj文件时,我想到了两种方法:

  1. 创建一个顶点数量大小的二维数组.当一个面使用一个顶点时,从数组中获取它的坐标.
  2. 获取顶点列表的起始位置,然后当面使用顶点时,扫描线直到到达顶点.

IMO,选项1将非常耗费内存,但要快得多.由于选项2涉及大量文件读取(并且因为大多数对象中的顶点数量变得非常大),因此速度会慢得多,但记忆密集程度会降低.

问题是:比较内存和速度之间的权衡,哪个选项更适合普通计算机?而且,还有另一种方法吗?

我计划使用OpenGL和GLFW来渲染对象.

c++ wavefront

6
推荐指数
1
解决办法
9271
查看次数

MATLAB:像Wavefront算法一样制作矩阵

我有这种矩阵(13 x 13):

0   0   0   0   0   0   0   0   0   0   0   0   0
0   1   1   1   1   1   1   1   1   1   1   1   0
0   1   1   1   1   1   1   1   1   1   1   1   0
0   1   1   1   1   1   1   1   1   1   1   1   0
0   1   1   1   1   1   1   1   1   1   1   1   0
0   1   1   1   1   1   1   1   1   1   1   1 …
Run Code Online (Sandbox Code Playgroud)

matlab matrix wavefront

6
推荐指数
1
解决办法
668
查看次数

MTL文件中的KE属性

我的.obj文件旁边有一个.mtl文件,它指定了对象的材质.我试图创建一个解析器但不知道"Ke"属性的含义.例如:

Ka 0.78 0.78 0.78 
Kd 0.78 0.78 0.78
Ks 0 0 0
Ke 17 12 4 # What does this line mean?
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

3d wavefront material .obj

6
推荐指数
1
解决办法
1629
查看次数

Wavefront OBJ格式 - > Groups&usemtl命令

所以我正在为wavefront obj模型文件编写一个解析器,并且有一些我不确定如何处理的不规则.

因此,根据我的阅读,可以使用'g'命令将网格分成组,并使用'usemtl'命令将材质分配给每个组

所以一个理想的文件看起来像这样:

g group1
usemtl material1
//vertices
//UV coords
//faces

g group2
usemtl material2
//vertices
//UV coords
//faces

etc....
Run Code Online (Sandbox Code Playgroud)

但是在我下载的一些obj文件中(从Turbosquid这样的地方),我看到一个组包含多个"usemtl",如下所示:

g group1
usemtl material1
//vertices, faces, etc 
usemtl material2 
//vertices, faces, etc

g group2 
usematerial material3
//vertices, faces, etc
Run Code Online (Sandbox Code Playgroud)

因此,如果每组可以有多种材料,那么群体的重点是什么?

这些文件被认为是"非标准"还是破损?

我应该改为基于共享材料而不是共享组对面部进行分组吗?

每组有多种材料会使我的许多代码复杂化(例如 - 假设我必须在一组具有特定材料的三角形/面上生成一组N个随机样本.如果每组只有一种材料,我可以查找该组中的三角形并生成样本.但是如果该组包含一些具有正确材料的三角形而一些没有,则我必须在组检查之前进行一些奇怪的材料检查以生成正确的样本.这是只是一个例子 - 还有其他一些问题也成了问题)

3d graphics rendering polygon wavefront

5
推荐指数
1
解决办法
735
查看次数

标签 统计

wavefront ×10

.obj ×2

3d ×2

blender ×2

c++ ×2

graphics ×2

opengl ×2

polygon ×2

3ds ×1

animated ×1

java ×1

lwjgl ×1

material ×1

matlab ×1

matrix ×1

mime ×1

react-360 ×1

rendering ×1

three.js ×1

webvr ×1