0

我在 Javascript/canvas 中构建了一个 3d 显示应用程序,它运行良好。我最近实现了映射纹理的能力。

我从 stl 格式导入 3d 模型,效果很好,因为它们只存储 tris,所以很容易导入,因为我不必分解它们,但它们不存储纹理。

存储纹理的方式就是这样

textureObject(){
  this.img=image //Js image object
  this.triArray=[[x1,y1],[x2,y2]...]//Map of where polys

  function returnImage(int i){
    //returns a cropped triangle around the coordinates in the triArray. 
  }
}

实际的实现有点不同,但这就是它的肉和肉汁。虽然它不是完美的纹理映射,但它只是一个仿射变换,看起来很丑陋,但对我来说已经足够了。

我的问题是我不确定如何从已经创建的 3d 对象中保存 triArray,这样我就不必仅为该项目创建全新的文件格式。

我想我有两个选择:

如果有一个将纹理坐标信息存储在文件中的文件格式,则为另一种文件格式制作一个导入器。(但是哪种文件格式?)

或者

或者是否有一种将纹理映射到对象的标准方法,然后我可以实现这些方法来创建我的数组?(方法是什么?)

4

1 回答 1

0

也许这种文件格式是您正在寻找的东西?我认为很多 3d 建模程序实际上都导出为这种格式:http ://en.wikipedia.org/wiki/Obj

于 2010-12-02T21:15:02.470 回答