标签: 3d-engine

glDrawArray()给出了一个内存异常

循环遍历我想在3D引擎中渲染的所有对象时,尝试调用时出错

glDrawArrays(mesh->primitiveType, 0, mesh->vertexCount); 
Run Code Online (Sandbox Code Playgroud)

因为它试图从位置0x0000000读取,所以显然绑定到mesh-> vertexBuffer索引的指针指向零.这一切都发生在我的RenderableObject类中.此类的实例具有绑定到它们的网格,此网格包含应链接到VertexArray的索引.但显然

glBindBuffer(GL_ARRAY_BUFFER, mesh->vertexBuffer);
Run Code Online (Sandbox Code Playgroud)

失败了.

奇怪的是,它将在我的Mac和各种其他Windows计算机上运行 - 但它不会在这台(Windows)计算机上运行.因为我正在测试我删除了所有3D模型,并发现它是导致问题的原语,不知何故,MSVC++编译器"优化"了我的代码,以便删除所有内容

glGenBuffers(1, &CubeMesh.vertexBuffer);
Run Code Online (Sandbox Code Playgroud)

这可能就是为什么没有任何约束,或者我认为.我禁用了链接器/编译器优化,我现在可以看到allbreakpoints会被击中 - 但我仍然得到相同的异常,而且我完全不知道为什么它不起作用.

整个项目的源代码可以在@ https://github.com/Wrap/TwinGame/tree/master/src找到,据我所知,问题出现在Primitives.cpp和/或RenderableObject.cpp中. (特别是RenderableObject :: Draw();方法)文件.我是否正在尝试阅读受保护的内容,LoadPrimitives()出了什么问题; 方法?

感谢您抽时间阅读.

c++ memory opengl 3d-engine

29
推荐指数
1
解决办法
688
查看次数

Android - 适用于Android的最新开源3d库

我目前正在寻找使用min3d,但遇到了一个线程,原始创建者说他正在继续前进,它不再支持了.我不认为这对我自己来说是个大问题,但我想知道是否有其他人使用过任何类似min3d功能的3d库.

理想情况下,我正在寻找轻量级的东西,主要处理opengl和可能屏幕上的触摸事件.

3d android opengl-es 3d-engine

10
推荐指数
2
解决办法
1万
查看次数

红宝石的3D引擎

我正在寻找开发红宝石游戏的3D引擎.我找到了一些像G3Druby或ogrerb.

哪一个更好用,功能更好?有没有比这些更好的其他引擎?

ruby 3d-engine

9
推荐指数
2
解决办法
6632
查看次数

"无限细节"图形技术如何运作?

所以我偶然发现了这种名为Unlimited Detail的 "新"图形引擎/技术.

这似乎非常有趣,因为它是真实的,而不是假的.

他们有一些视频解释技术,但他们只是划伤表面.

你怎么看待这件事?它是以编程方式实现的吗?或者这只是投资者的骗局?

更新:由于唯一的答案是基于体素我必须从他们的网站复制这个:

无限细节方法与迄今为止发明的任何3D方法非常不同.3D图形中使用的三个当前系统是光线跟踪多边形和点云/体素,它们都有优点和缺点.多边形运行速度快但几何形状较差,光线跟踪和体素具有完美的几何形状,但运行速度非常慢. Unlimited Detail是第四个系统,它更像是一个搜索算法,而不是一个3D引擎

3d graphics 3d-engine

7
推荐指数
1
解决办法
4792
查看次数

是否需要编写新的3D引擎?

编写一个新的3D引擎很有吸引力,但我有很多.程序员开始一个新的是否理智?是否有需要的行业部门?

3d graphics 3d-engine

7
推荐指数
2
解决办法
324
查看次数

3D引擎在旋转时拉伸物体

我做了一个小3d引擎.

但我在旋转功能方面遇到了一些问题.它们使物体不时伸展开来.这是数学:

this.rotateX = function(angle) {
    var cos = Math.cos(angle);
    var sin = Math.sin(angle);

    for(var i = 0; i < this.points.length; i++) {
        this.points[i].y = sin * this.points[i].z + cos * this.points[i].y;
        this.points[i].z = -sin * this.points[i].y + cos * this.points[i].z;
    }
}

this.rotateY = function(angle) {
    var cos = Math.cos(angle);
    var sin = Math.sin(angle);

    for(var i = 0; i < this.points.length; i++) {
        this.points[i].x = cos * this.points[i].x - sin * this.points[i].z;
        this.points[i].z = sin * this.points[i].x + cos …
Run Code Online (Sandbox Code Playgroud)

javascript canvas 3d-engine

5
推荐指数
1
解决办法
222
查看次数

从C++容器中删除对象而不删除它们

我正在使用C++ std向量存储渲染对象以进行简单的场景图实现.我需要能够在场景图中添加和删除运行时渲染对象.添加不是问题,用于删除:读取矢量和其他的文档C++容器看起来当弹出对象时会调用它们的析构函数.这不是我需要的,因为我希望以后能够将这些对象重新添加到渲染循环中.这个问题的可能解决方案是什么?我忘了提到的重要细节 - 我正在使用指向渲染对象的指针向量.

c++ 3d-engine stdvector

5
推荐指数
1
解决办法
5691
查看次数

优秀的3D GUI引擎

我知道WPF是一个很好的3D GUI引擎,但我想知道其他好的3D GUI引擎?

wpf user-interface 3d-engine

4
推荐指数
1
解决办法
2122
查看次数

在游戏中的图形和物理引擎之间共享数据?

我正在编写一个由几个模块组成的游戏引擎。其中两个是图形引擎物理引擎

我想知道在它们之间共享数据是否是一个好的解决方案?

两种方式(共享或不共享)看起来像这样:

不共享数据

GraphicsModel{
    //some common for graphics and physics data like position

    //some only graphic data 
    //like textures and detailed model's vertices that physics doesn't need
};

PhysicsModel{
    //some common for graphics and physics data like position

    //some only physics data 
    //usually my physics data contains A LOT more information than graphics data
}

engine3D->createModel3D(...);
physicsEngine->createModel3D(...);

//connect graphics and physics data 
//e.g. update graphics model's position when physics model's position will change
Run Code Online (Sandbox Code Playgroud)

我看到两个主要问题:

  1. 大量冗余数据(例如物理和图形数据的两个位置) …

c++ graphics 3d-engine game-engine physics-engine

4
推荐指数
1
解决办法
1270
查看次数

JavaFX 8作为3D游戏引擎?

我想创建一个MMO 3D游戏,我正在寻找一个3D引擎,我的问题是关于javaFX 8,我可以用它来渲染很多 3D立方体,模型和动画而不会失去性能或者最好使用lwjgl吗?

最后一个问题是:javaFX 8可以用作3D引擎吗?

java javafx 3d-engine javafx-3d

4
推荐指数
1
解决办法
8074
查看次数

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

这是关于良好做法的问题

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

问题是:通过数组中的索引或指针指向链接对象是否更好?......特别是在表现方面

typedef index_t uint16_t;

class Vertex{
    Vec3 pos;
    #ifdef BY_POINTER
    Edge*   edges[nMaxEdgesPerVertex];
    Face*   faces[nMaxFacesPerVertex];
    #else
    index_t edges[nMaxEdgesPerVertex];
    index_t faces[nMaxFacesPerVertex];
    #endif
}

class Edge{
    Vec3   direction;
    double length;
    #ifdef BY_POINTER
    Vertex* verts[2];
    Faces*  faces[nMaxFacesPerEdge];  
    #else
    index_t verts[2];
    index_t faces[nMaxFacesPerEdge];
    #endif
}

class Face{
    Vec3   normal;
    double isoVal; // Plane equation: normal.dot(test_point)==isoVal
    #ifdef BY_POINTER
    Vertex* verts[nMaxVertsPerFace];
    Edge*   edges[nMaxEdgesPerFace];
    #else
    index_t verts[nMaxVertsPerFace];
    index_t edges[nMaxEdgesPerFace];
    #endif
}

#ifndef BY_POINTER
// we can use …
Run Code Online (Sandbox Code Playgroud)

c++ performance 3d-engine graph-traversal

3
推荐指数
2
解决办法
827
查看次数

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

问题

我在使用 LWJGL 3 渲染任何东西时遇到了麻烦。它不会渲染任何东西,同时创建 GLFW 显示并成功清除颜色。

工具

  • Eclipse 霓虹灯(Java IDE)
  • LWJGL 3.1.1 build 16 带有 GLFW、JAWT 和 OPENGL 绑定,原生。

编码

package init;

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.nio.IntBuffer;

import org.lwjgl.glfw.GLFWErrorCallback;
import org.lwjgl.glfw.GLFWVidMode;
import org.lwjgl.opengl.GL;
import org.lwjgl.system.MemoryStack;

import exception.ExceptionHandler;
import util.Time;

import static org.lwjgl.glfw.Callbacks.*;
import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.system.MemoryStack.*;

public class DisplayInstance {
    
    public String title = "The SuperMatrix";
    public GraphicsDevice gd;
    public Game game;
    public Config conf;
    private long display;
    
    private GLFWErrorCallback glfwerrorcallback;
    
    public DisplayInstance(Game …
Run Code Online (Sandbox Code Playgroud)

java opengl 3d lwjgl 3d-engine

-1
推荐指数
1
解决办法
964
查看次数