问题标签 [3d-rendering]

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 投票
4 回答
1227 浏览

algorithm - 图像识别和 3D 渲染

拍摄对象的图像(在这种情况下是预定义的对象)并开发一种算法以从具有不同复杂性背景的照片中仅剪切该对象是多么困难。

除此之外,照片的对象(比如房子、汽车、狗——但总是一种类型)需要转换为 3d 渲染。我知道有可用的 3d 渲染引擎(收费、免费或带有某些条款),但要使其工作,需要以各种方式测量对象(主体)——例如,如果这是一个人,我们需要测量身高、肩膀的曲率、脸的半径、每个手指的长度等。

解决这个问题的可行性是多少?有人知道这个研究领域有什么好的链接吗?我已经看到了这个问题的开源解决方案,这让我想到了在跟踪对象以将其裁剪出来的同时测量对象是否容易。

谢谢


本质上我想拍一张 2d 图像(典型图像:这比包含多个对象的复杂照片更容易,等等)

http://benmartin3d.com/WIP/Project1/image1small.jpg,

但实际上我想把它变成一个 3d 图像,所以我想做的不是构建一个 3d 渲染/建模引擎吗?

此外,我提供的链接进入 3ds max,设置了一些属性,并进行了渲染。

0 投票
4 回答
3310 浏览

c++ - 球体世界实现 C++

什么是实现、存储和渲染球形世界的最佳方式,例如在孢子或无限中但没有中间阶段的孢子,以及无限宇宙的多个世界。不对行星本身是如何产生的或它的大小/规模做任何假设。

0 投票
2 回答
9315 浏览

opengl - Understanding OpenGL Matrices

I'm starting to learn about 3D rendering and I've been making good progress. I've picked up a lot regarding matrices and the general operations that can be performed on them.

One thing I'm still not quite following is OpenGL's use of matrices. I see this (and things like it) quite a lot:

So my best understanding, is that it is a normalized (no magnitude) 4 dimensional, column-major matrix. Also that this matrix in particular is called the "identity matrix".

Some questions:

  • What is the "nth" dimension?
  • How and when are these applied?

My biggest confusion arises from how OpenGL makes use of this kind of data.

0 投票
1 回答
1219 浏览

3d - D3D9 和自定义剪切平面 (IDirect3DDevice9::SetClipPlane)

我在文档中阅读了我们使用的中间件,对此的支持可能很不稳定,但D3D 文档没有提到它。我们要追溯到最早的硬件 SM2.0 英特尔 GMA 卡,基本上是 GMA950 和 GMA3100,所以我试图找出这些是否足够老而出现问题,或者我们正在谈论更老的固定 -仅功能芯片组。

0 投票
1 回答
892 浏览

javascript - 使用 pre3d 嵌套长方体

借助pre3d js lib中的这个示例,我正在尝试创建一个长方体容器,其中将包含较小的长方体。

现在,我没有正确理解的是如何将内部长方体放置在预定义的坐标中。这里的通用公式是transform2.translate什么?这个公式应该适用于我想放在里面的任何长方体。

以下是我到目前为止所做的。如果将这两个文件放在demos目录中,它们应该可以立即工作。

示例 HTML 在这里:

0 投票
3 回答
6744 浏览

javascript - 在three.js 中开始使用行进立方体

我是 Three.js 的新手,正在寻找一个教程,让我开始了解如何在 three.js 中使用 Marching Cubes。到目前为止,我在 three.js 中看到的一些使用它的项目对我来说有点复杂,所以一个简单的教程会很好。

谢谢你。

0 投票
1 回答
6336 浏览

javascript - 在 three.js 中渲染多边形

如何在three.js中渲染 n 边多边形。它没有几何形状。我需要它能够渲染凸多边形和凹多边形。所以也许某处有补丁或解决方法。 用法: 输入将是n个顶点,这将构成 n 边多边形。但是,所有顶点都将位于同一平面上,并且输出应该是渲染的多边形。

0 投票
1 回答
2234 浏览

3d - 离线批量渲染多模型+纹理贴图的3D渲染引擎?

我正在构建一个项目,该项目将使用许多 PNG 文件,这些文件必须从服装的 3D 模型渲染(我们还没有雇人来创建模型)。我们有多种纹理贴图(不同类型和颜色的布料等)将与模型一起使用(每个模型可能会被渲染多次,使用不同的纹理)。将来,我们将添加和更改模型和纹理贴图,并且需要能够根据需要自动重新渲染 PNG。

所以我们正在寻找:

  1. 可以从命令行运行的独立 3D 渲染引擎。它必须接受我们可以使用自定义脚本轻松生成的输入格式。

  2. 一个 3D 渲染库,可以与流行的编程语言(如 Java 或 Ruby)互操作,并且可以以流行的建模文件格式加载 3D 模型。

我们正在研究 Yafaray (http://www.yafaray.org),它可以从命令行运行,并将 XML 场景描述作为输入,但我相信可能会有更好的选择。您能否客观地细分您所知道的选项的利弊?

0 投票
1 回答
1428 浏览

html5-canvas - 使用表面法线的正交 3D 背面剔除

我正在创建一个 HTML5 画布 3D 渲染器,我想说没有 SO 的帮助我已经走了很远,但我遇到了各种各样的阻碍。我正在尝试借助一些法线计算在立方体上实现背面剔除。此外,我已将其标记为 WebGL,因为这是一个足够普遍的问题,它既适用于我的用例,也适用于 3D 加速的用例。

无论如何,当我旋转立方体时,我发现隐藏了错误的面孔。例子:

立方体的背面剔除问题

我正在使用以下顶点: https ://developer.mozilla.org/en/WebGL/Creating_3D_objects_using_WebGL#Define_the_positions_of_the_cube%27s_vertices

我使用的一般程序是:

  1. 创建一个变换矩阵,用来变换立方体的顶点

  2. 对于每个面,以及每个面上的每个点,我将它们转换为 vec3,然后将它们乘以在步骤 1 中生成的矩阵。

  3. 然后我使用 Newell 的方法获得面部的表面法线,然后从该法线和一些组成的 vec3 中获得点积,例如 [-1, 1, 1],因为我想不出一个好的值放在这里。我见过一些人为此使用相机的位置,但是......

  4. 跳过使用相机矩阵的通常步骤,我从结果向量中提取 x 和 y 值以发送到我的线和面渲染器,但前提是它们的点积大于 0。我意识到我是相当随意的拉,真的。

我想知道两件事;如果我在步骤 3 中的程序是正确的(很可能不是),并且我在脸上绘制的点的顺序不正确(很可能)。如果后者是真的,我不太确定如何可视化问题。我见过人们说法线无关紧要,它是画线的方向,但是……我很难理解这一点,或者这是否是我问题的根源。

可能没关系,但我使用的矩阵库是gl-matrix:

https://github.com/toji/gl-matrix

此外,我正在使用的开源代码库中的特定文件在这里:

http://code.google.com/p/nanoblok/source/browse/nb11/app/render.js

提前致谢!

0 投票
0 回答
692 浏览

opengl - OpenGL 的立体 3D 渲染问题

我正在尝试在 NVIDIA Quadro 5000 上使用立体 3D 渲染绘制从 .obj 文件加载的基本网格。据我所知,我认为我的左眼和右眼截锥体和偏移量已相应设置,但我的主要问题是写入和清除 BACK_LEFT 和 BACK_RIGHT 缓冲区。似乎它完全错过了第一部分,只绘制了 BACK_RIGHT 缓冲区(渲染循环的第二部分)。如果我能得到一些关于如何在同一帧中写入/读取和清除这些缓冲区的指示,那就太好了。它是一个 Linux 应用程序,因此是 glXSwap(),不使用 glut 或 glew 并使用 glm 进行数学运算。这是我的绘图循环:

编辑:意识到如果我在正确的屏幕上运行我的应用程序,它会呈现 GL_BACK_RIGHT 缓冲区。在左侧屏幕上运行它会绘制 GL_BACK_LEFT。

有任何想法吗?可能是显示器设置?