问题标签 [3d-engine]

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 投票
1 回答
1226 浏览

opengl - 我应该如何用opengl组织着色器系统

我在想:

拥有一个将应用于我的应用程序的每个对象的主着色器,它将用于投影、转换、定位、着色等。

每个对象都可以有自己的额外着色器用于额外的东西,例如水对象肯定需要额外的着色器。

但是有一个问题,我如何将 2 个或更多着色器应用到一个对象中?因为我需要应用主着色器 + 对象自己的着色器。

0 投票
1 回答
303 浏览

graphics - 用于计算机图形学习的 3D 引擎

我正在寻找一个简单的 3D 引擎或工具包,我可以用它来试验计算机图形算法。例如应用变换矩阵,看看会发生什么。

任何人都可以提出建议吗?

0 投票
1 回答
121 浏览

game-engine - 制作3D游戏引擎需要努力吗?

为了理论(和一般理解),

我想在一个适度详尽的列表中了解创建“现代” 3D 游戏引擎必须完成的所有事情(从编码人员的角度来看)

我似乎很难在其他任何地方找到这些信息,所以我认为 Stack overflow 的你们会拥有我所寻求的知识。

就“适度详尽”而言,我的意思是对此类引擎的设计阶段的一般解释,例如二进制空间分区,然后是此类引擎的实际实现以及软件的使用(如果可以解释 BSP 以外的渲染方式)。

我不想制作 3D 引擎,但只需了解制作一个 3D 引擎需要付出多大的努力。

0 投票
0 回答
131 浏览

c++ - 更新项目中缺少 D3DX 定义

我需要更新旧的六月 DX10 应用程序。

我最初的设置是这样的,我将 DX10 的包含文件和库作为我的回购的一部分。这编译并运行良好,但是当我在 Win10 上使用 VS2015 和 VS2013 编译器编译它时,会导致数百个宏重新定义警告。

我想修复警告,所以我查阅了微软的这篇博文。按照那里的步骤(修改项目的 VC++ 目录并更改我的包含)后,项目将无法编译,因为它不知道我使用的很多类和定义是什么......例如 D3DMATRIX 给了我语法错误/未声明的标识符。

更新我的项目的正确过程是什么?

0 投票
2 回答
1304 浏览

c++ - 通过指针与数组中的索引链接结构图

这是关于良好实践的问题

考虑典型的情况,例如在 3D 引擎、物理引擎、有限元方法经典分子动力学求解器中:您有各种类型的对象(例如顶点、边、面、有界实体体积),它们相互交联(例如顶点知道哪条边连接到它,反之亦然)。对于此类引擎的性能和使用便利性,对于能够快速浏览此类连接的网络至关重要。

问题是:通过数组中的索引或指针指向链接对象更好吗?...尤其是在性能方面

指数优势:

  • uint8_t当我们使用或uint16_t用于索引而不是 32 位或 64 位指针时,使用索引可以更节省内存
  • 索引可以携带一些以某些位编码的附加信息(例如关于边缘的方向);
  • 数组中对象的排序可以携带一些关于结构的信息(例如,立方体的顶点可以排序为{0b000,0b001,0b010,0b011,0b100,0b101,0b110,0b111})。此信息在指针中不可见

指针的优点:

  • 我们不需要关心数组(或其他数据结构)来存储对象。对象可以简单地在堆上动态分配new Vertex()
  • 可能更快(?),因为它不需要添加数组的基地址(?)。但这在内存延迟方面可能可以忽略不计(?)
0 投票
1 回答
207 浏览

javascript - 使用Babylon js 部分加载定制鞋款

我打算用Babylon引擎开发一个3D鞋子定制网站。鞋子可以部分定制。比如,改变前部的形状,从弯曲到尖,改变鞋跟的形状和大小,改变每个部分的纹理等,

为此,创建带有子网格的模型并与之交互以更改材料是否正确?

是否可以在运行时更改子网格,弯曲到尖?

或者代替子网格是否可以加载多个单独的网格(内底,外底,鞋跟等,作为单独的模型网格)并附加它们?

请引导我走正确的道路。

0 投票
0 回答
379 浏览

game-engine - Atomic Voxel Engine - 推荐的编程环境

正如标题所示,我对基于体素的原子引擎感兴趣(原子意味着每个像素最多有一个可见体素)。这种发动机的一个例子是 atomontage 发动机。我要存档的是一个原子引擎,它使用逐像素光线追踪来创建显示器的图像。

现在我想知道什么样的编程环境适合这样的引擎。通常对于 3-D 图形,可能会建议使用 OpenGL(或 DirectX?)。但是 OpenGL 似乎专注于经典的多边形图形,我不知道 OpenGL 是否适合原子体素图形(你不定义多边形,不使用纹理),我不知道经典着色是否适合一个原子引擎。

这就是我考虑使用 cuda 的原因(在这里我事先也不知道 cuda 是否适合我的任务),而且我很不幸没有 NVidia 显卡。

我还考虑过使用普通的旧 C(或 C++)。但是自己做所有的 3-D 计算似乎很难。

所以我的实际问题是:“我使用什么工具/环境来创建原子体素引擎?”

0 投票
1 回答
1048 浏览

java - LWJGL 3 不渲染任何东西,同时成功创建显示

问题

我无法使用 LWJGL 3 渲染任何东西。它不会渲染任何东西,同时创建 GLFW 显示并成功清除颜色。

工具

  • Eclipse 霓虹灯(Java IDE)
  • LWJGL 3.1.1 build 16 与 GLFW、JAWT 和 OPENGL 绑定、本地人。

编码

谢谢你。绝对任何帮助将不胜感激。

0 投票
1 回答
439 浏览

c# - 带有旧版 .NET 3DEngine 的 C# 屏幕保护程序 - 构建配置

我编写了一个 C# 屏幕保护程序,它可以在预览(安装)模式、配置甚至测试模式下工作。但是,当达到 Windows 计时器启动它时,屏幕变黑,我看到鼠标加载图标 2-3 秒,然后屏幕恢复到桌面上。

我在我的第一行代码中添加了一个日志文件条目,main()并且似乎该代码在由 Windows 启动时永远不会运行。

在 Windows 10 上使用 Visual Studio 2017。

由于我使用的是旧的 3D 引擎,因此我确保修改了 app.config:

我将 Screensaver.exe 重命名为 Screensaver.scr,并将 app.config 重命名为 Screensaver.scr.config。将这些与我的引擎 dll 复制到 SysWOW64 文件夹中。

构建平台目标 = x86。

我尝试了调试和发布版本......并且我使用相同的代码结构来做一个显示文本的屏幕保护程序的简单示例并且它有效,因此我真的认为问题来自于 3D 引擎 dll 的使用。

你们有什么建议吗?配置中是否有一些适用于 .scr 的特殊性?在任何地方都找不到任何线索,我不知道......

如果有帮助,这里是主要代码:

0 投票
1 回答
518 浏览

javascript - 如何在三个js中多次高效渲染一个网格?

我正在尝试创建一个立方体世界游戏。所以有块的 3d 数组,每个块都是一个网格数组(现在网格数组实际上是一个网格,立方体)。它可以工作,但是当我使用大量块(50x1x50 就足够了)时,fps 下降得非常低(大约 3)。

当我多次使用一个块时,我使用 clone() 函数,但这还不够。网格的几何形状是 BoxBufferGeometry。我也尝试使用相同的几何和纹理(而不是使用克隆),但并没有变得更好。

那么,如何提高fps呢?类似的游戏有什么魔力?