问题标签 [3d-modelling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1945 浏览

three.js - Three.js - 将透明 PNG 转换为具有透明度几何形状的 3D“卡片”的技术

目标是将任何透明的 PNG 转换为具有轻微厚度和图像几何减去透明度的 3D 卡。例如,我想拍一张像这样的图像:http: //findicons.com/files/icons/730/soft/128/user_male.png并把它变成一个有一点厚度的卡片对象。但是,卡片不应该是矩形的——它的边缘应该遵循图像中透明度的形状。

是否有任何简单的程序方法可以在任何给定的 PNG 上完成此操作?

谢谢。

0 投票
2 回答
873 浏览

opengl - 如何将 2D 逐帧动画放在 3d 模型上(混合动画)

我想做一个卡通 3D 角色,其中面部特征是平面绘制的,并且是 2D 动画。有点像泡泡孔雀鱼角色。

我正在努力寻找一个好的方法来做到这一点。我正在使用 Libgdx,但我认为潜在的方法可以适用于任何游戏引擎。

这是我想到的想法,但每个都有缺点。有没有办法做到这一点?我只是和我的孩子们玩一个低成本的 Wii 游戏(一个 Nickelodeon 舞蹈游戏),它使用这种类型的动画来制作面部。

想法:

UV 动画- 有没有办法设置游戏模型(FBX 格式),以便将某些 UV 存储在各种皮肤中?然后,UV 可以跳转到精灵贴图中的各个位置。

投影面——这个想法很复杂。将纹理投影到模型上,并使用顶点着色器统一移动投影纹理的 UV。所以基本上,你需要一个投影矩阵来设置模型来移动面部投影。但是您需要在面部框架精灵周围有足够的填充,以使模型的其余部分远离精灵贴图的其他部分。这会导致复杂的片段着色器不适合移动设备。

使用模型移动平面 3D 贴花- 单独显示与模型对齐并在游戏中作为单独网格批量处理的 3D 贴花。贴花可能只是一个四边形,您可以在其中更改每个动画帧上顶点的 UV 属性。但是,此方法不会环绕面部的曲率。也许它可以分解为每个眼睛和嘴巴的单独贴花,但仍然看起来不太好,并且需要为每个模型创建一个单独的文件来定义贴花的位置。

为每一帧动画单独的骨骼- 在网格中为每一帧动画建模一个重复的面,并为每个动画赋予一个独特的骨骼。通过在 0 和 1 之间切换骨骼比例来为面部设置动画。如果动画帧数超过几帧,这个想法很快就会失效。

每帧更新部分皮肤- 将皮肤复制到 FBO。将最新的动画帧绘制到包含面部的 FBO 颜色纹理部分。这种方法的缺点是,您需要为模型的每个实例在内存中单独复制一份纹理,并且 FBO 必须每帧都进行缓冲区恢复(成本高昂),或者您必须重新绘制整个皮肤进入 FBO 每一帧(也很昂贵)。

我还有其他比这些更困难的想法。感觉必须有一个更简单的方法。


编辑:

还有一个想法……统一的 UV 偏移和顶点颜色- 此方法将使用顶点颜色,因为它们很容易在所有游戏引擎和建模包中得到支持,但在许多情况下未使用。在纹理中,创建一条动画帧。为第一帧设置面部 UV。使用 Alpha 0 为所有顶点着色,除了面顶点可以着色为 Alpha 1。然后将 UV 面偏移统一传递给顶点着色器,并在将其添加到 UV 之前将其乘以顶点颜色上的阶跃函数。这避免了上述所有方法的缺点:所有东西都可以包装到模型的所有实例共享的一个纹理中,并且模型上除了可能在面部的位置之外不会有两遍像素。这里的缺点是模型更重(每个顶点有四个额外的属性,尽管颜色可能会被烘焙到单个字节)。

0 投票
2 回答
3842 浏览

json - Three.js 中 JSON 网格格式的现状如何?

一般问题:目前广泛使用的用于加载 3d 模型的稳定 JSON 格式是什么?

扩展问题:

我是一名从事 WebGL 工作的程序员,尤其是使用Elm 编程语言。我一直在研究不同的模型格式,似乎使用 three.js JSON 格式作为一种标准对我的项目很有意义(并且可能对一般的语言)。

然而,在 three.js github 上,它说模型语言的第 3 版即将被弃用。

所以,我想在转换之前知道模型格式的当前状态。版本3暂时稳定吗?版本 4 发布了吗?会有版本 4 模型格式,还是被几何格式取代?即将发生的变化是否如此严重以至于在此时采用这种格式是一个坏主意?

我见过新的 ObjectLoader 类,它们与 Json 网格格式有什么关系?它是我可以将 .obj 转换为的格式吗?

0 投票
1 回答
185 浏览

3d - 将 3D 模型离散化为矩阵的最佳方法

我想制作一个 3D 模型,我可以用搅拌机、sketchup 等工具制作它,并将其离散化为 3D 矩阵。

你可以说我想“Minecraftise”一个任意对象。(模拟的除外)

一个例子:这是一个带有半球形末端的离散圆柱体:

在此处输入图像描述

我目前的想法是获取描述对象的顶点列表,并查看它们将占据矩阵中的哪些单元格,然后将其标记为被对象占据。

1)这是一个好方法吗?

2)如果是这样,完成这项任务最简单的模型格式是什么,是否有一些标准的优质库?

谢谢

0 投票
1 回答
1134 浏览

geometry - 如何从几何形状创建 3D 模型文件?

我正在编写一个程序,它将基于简单的几何形状(例如矩形棱柱和圆柱体)输出 3D 模型文件,并在 3 维空间中具有已知坐标。例如,想象一下创建巨石阵的 3D 模型。这个问题表明 OBJ 文件是最容易生成的,但我正在努力寻找一个好的教程或易于使用的库来这样做。

任何人都可以

(1) 逐步描述如何创建一个简单的文件或 (2) 指向一个描述如何创建简单文件的教程

注意: * 使用基于 GUI 的程序绘制此类文件对我来说不是一个选项 * 我之前没有 3D 建模经验 * WRL 或 DAE 等其他格式也适用于我

编辑:

我不需要使用纹理,只需在 3D 空间中放置简单几何形状的组合。

0 投票
1 回答
1562 浏览

opengl - OpenGL 批量渲染网格

我正在使用 OpenGL、glew 和 GLFW 为项目编写一个简单的游戏。我已经有一个使用 Assimp 的 3D 模型导入器,它也可以处理纹理。

这是我绘制一个网格的方式:

我的问题是如何使用同一个网格渲染数百个移动实体,但每个实体都有不同的世界位置和旋转?

如果我有数百个移动实体,每一帧我都会渲染相同的网格数百次,我现在可以注意到 FPS 下降。

顺便说一句,我没有使用着色器,只是简单的绘制

0 投票
0 回答
106 浏览

3d - 如何批量渲染 OFF 文件?

我有一组约 500 个“对象文件格式”的 3D 模型(请参阅http://en.wikipedia.org/wiki/OFF_(file_format)),我想为与 CV 相关的研究任务进行渲染。

Meshlab 确实提供了手动打开渲染每个文件的功能,但是对于大约 500 个文件来说,这实在是太多了。

有人知道如何批量渲染文件吗?

0 投票
1 回答
1036 浏览

graphics - 将体素化模型转换为平滑形式

我有一个 3D 模型作为网格结构或 .stl/.obj 格式,我使用binvox体素化工具将其转换为体素。使用Java程序,我对得到的体素网格做了一些处理。现在,我希望将此体素化模型转换回“平滑”网格结构(或任何其他格式),稍后可以将其导出为 .stl 或 .obj 格式。

有人可以建议我如何实现最后一部分,即将体素网格转换为某种格式以检索“光滑”表面?任何帮助,包括指向现有工具或这个方向的相关理论,都将不胜感激。

0 投票
1 回答
2946 浏览

unity3d - Unity3D:地形对象的纹理在长距离上闪烁

我正在 Unity3D 上制作 RTS 项目。

我使用 Unity 的标准地形工具创建地形,并在其上添加草、情绪等纹理。然后,为了创建“人造”地形对象(道路、人行道、路缘石等)——我在单独的资产中创建了这些对象,并放置在地形上。

我对这个解决方案有一个问题。在将相机从地形上移开时,地形的纹理(例如情绪)在道路、人行道和其他物体下闪烁。AFAIK,这个错误是由 Unity3D 引擎中的浮点坐标精度不足引起的(?)。

现在,就我而言,我创建地形对象的方法是不正确的。我必须在 3D 建模软件中创建一个带有地形的网格和所有人造物体,然后创建 UV 贴图以对所有这些进行纹理化。这种方法正确吗?如果“是”,对于像地形这样大而复杂的对象,是否有任何特殊的建模和纹理方法?

0 投票
0 回答
49 浏览

performance - 3ds max 性能建模

嗨!我正在使用一个没有很好建模的、真正的高多边形网格。我已经使用 Optimizer 和 Prooptimizer 减少了顶点、边数。我的对象有层次结构,我可以选择更小的组。

我的问题是如何在不手动编辑的情况下合并这些顶点,因为以后我会有这样的模型,但要大 10 倍。

我也对其他解决方案持开放态度,因为我想在 webgl 应用程序中展示这些模型,谁知道可能来自顶点模型的 NURBS。

或者复制 naviswork 样式并将模型缩小 10 倍;)。