在服务器上批量处理中将纹理映射到3D对象

5
我们有以下用例:
  1. 用户在Web服务器上上传她的图片
  2. 稍后 - 在服务器上 - 将图片映射到预定义的3D对象上,并存储为普通图像(png,jpeg等)。目前只显示正面视图。这些文件将在会话结束时被删除。
  3. 在普通img标签中向用户显示它们
为了支持此功能,我考虑了以下过程:

a. 3D模型是离线创建并上传到服务器
b. 实时,在服务器上进行纹理映射
c. 生成的3D模型视图保存到临时文件中
d. 文件在img标签中显示

现在来谈谈问题:

您对支持此类过程的工具有何建议? 它们运行的操作系统并不重要。步骤b和c应该相当快。

所以这些工具的要求是:
对于3D建模软件:
- 开源
- 易于使用
- 将模型保存在下一步中使用的库可读格式中
对于图形库:
- 开源
- 易于使用
- 资源占用低(尽可能少的占用资源)
- 读取模型器生成的文件
- 应用纹理
- 将生成的对象+纹理视图保存到普通文件中,以在浏览器中显示。
谢谢。

我可以问一下这样做的目的是什么吗? - Neil N
嗨,Memical,这不是一个直接的答案,但这个问题似乎非常适合提议的3D建模Stack Exchange网站:http://area51.stackexchange.com/proposals/5022/3d-modeling-techniques-and-software任何对此感兴趣的人,如果您能关注该提议并帮助向其他3D爱好者传播消息,以便更快地获得批准,那将是非常棒的。 :) - Peter Boughton
3个回答

2

看起来我无法在上面的问题中添加评论,因此将其作为答案发送。

你们所有的建议都很好,我们试着尝试了一下,感觉很有趣。

然而很快就变得清楚,我们不能在服务器端应用它们,因为服务器没有GPU。

现在有两个解决方案:

  • 使用类似于ReferenceGraphicsDeviceManager这样不需要GPU的东西。缺点是速度非常慢。
  • 为服务器购买一个显卡。我的担心在于可扩展性。你们有任何经验吗?GPU适合处理来自Web服务器的并行请求吗?

谢谢。


我认为您可能需要50点声望才能发表评论... 只要获得一些赞,您现在应该就可以了。 :) - Peter Boughton

1

Google SketchUp 是一款易于使用的建模软件(而且免费)。

Irrlicht 支持离线渲染(无需窗口),因此您可以渲染纹理并保存结果。(开源)。

如果我在制作这个项目,我会创建一个服务来创建和运行 irrlicht 渲染设备(在后台运行),这将有一个队列来接受渲染请求并按顺序处理它们。此外,如果服务器具有 OpenGL,您可以将其与 Irrlicht 一起使用,可能会加快速度。


1
你对支持这种过程的工具有什么建议?它们运行的操作系统并不重要。步骤b和c应该相当快速。
市面上有很多3D建模软件,我建议你看看Blender,但是这里有一个包含25个应用程序截图列表
以下是一些使用Blender进行XNA建模的教程:

http://www.stromcode.com/2008/03/10/modelling-for-xna-with-blender-part-i/ http://www.virtualrealm.com.au/blogs/getting-started-with-blender-3d-and-xna/

对于图形库,我建议您使用XNA,因为它是C#编写的,不需要花费太多精力就能掌握,并且由于它使用GPU,所以非常快速。您需要从文件中加载模型(您可以在运行时导入它,需要一些努力),然后加载纹理并通过模型的Effect应用到模型上。
然后,您可以生成所需的图像并保存到网站可访问的文件中。您的用户随后可以查看这些图片。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接