小编xxx*_*xxx的帖子

选择glMatrix,Sylvester和CanvasMatrix?

最后,我决定从头开始制作自己的WebGL 3D引擎,我从http://www.khronos.org/webgl/http://learningwebgl.com以及https://developer.mozilla.org开始教程./ EN/WebGL的

但问题是每个教程使用/推荐不同的库用于Matrix计算,所以我很困惑!

  • khronos推荐CanvasMatrix(但现在他们从Apple切换到J3DI.js?)
  • Mozilla一路推荐西尔维斯特!
  • Learningwebgl.com推荐glMatrix

问题是:哪一个非常适合3D WebGL应用程序,图表和游戏?(性能和可用性都很重要)

谢谢

javascript webgl

9
推荐指数
1
解决办法
6877
查看次数

现代OpenGL:VBO,GLM和Matrix Stacks

在搜索和阅读Modern OpenGL以升级我现有的项目之后,我有点困惑,因为我的3D框架基于OpenGL 2.1.

所以,据我所知......

  • 我们需要从顶点,索引,法线,颜色,紫外线等生成Vertex-Buffer-Objects.

  • 然后我们可以使用GLM进行矩阵变换,我们只使用VBO来创建或操作网格,最后我们将所有内容传递到GLSL顶点着色器中......

    glm::mat4 MVP = projection * view * model;
    glUniformMatrix4fv(glGetUniformLocation(shaderProgramID, "MVP"), 1, GL_FALSE, glm::value_ptr(MVP)); //or &MVP[0][0]
    
    // uniform mat4 MVP;
    // in vec3 Vertex;
    // void main(void)
    // {
    //    gl_Position = MVP * vec4(Vertex, 1.0); //instead of ftransform();
    // }
    
    Run Code Online (Sandbox Code Playgroud)

问题:我们如何在没有pushMatrix/popMatrix的情况下进行分层转换?(或者我们可以通过使用我们的VBO进行层次转换,是否可能?)

如果不可能,那么如何通过使用GLM和C++ <stack>库来实现与pushMatrix/popMatrix相同的结果?

让我们说我需要这样的东西:

> Set identity
> Translate to X, Y, Z
> Draw Mesh 1
> Rotate 0.5 by X axis
> Draw Mesh 2
> Scale down to 0.1
> Draw …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glsl matrix vbo

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

将现有的C++ openGL项目从glut/freeglut转换为glfw

我想将我的科学3D应用程序从Freeglut升级到GLFW,但我担心隐藏的冲突或数据丢失,实际上我的应用程序就像Freeglut的魅力一​​样,我没有任何问题,但GLFW被推荐用于现代OpenGL( 3.0+)在所有现代书籍和教程中.

我看看GLFW API,它看起来像带有glfw*前缀的Glut ,但我不完全确定.所以我有三个问题:

  1. 是否值得为GLFW打破我现有的项目,或坚持freeglut?
  2. 我是否会因过剩而失去任何功能?
  3. GLFW与GTK +兼容吗?(因为我的GUI基于GTK)

c++ gtk opengl freeglut glfw

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

寻找一些优化我的WebGL 3D引擎的技巧

我完成了Learningwebgl.com和Mozilla教程,一开始看起来都不错,但......

不幸的是,我的第一个引擎在制作了大量函数并将脚本分成片段(如core.js,math.js,mesh.js等)之后变慢了,所以我遇到了这个性能问题.

现在在LocalHost上加载页面需要几秒钟(这是非常快),加载纹理和网格也需要几秒钟,Chrome刷新页面几次后冻结,CPU/GPU使用异常,甚至我的'WampServer'崩溃了!

我不是Javascript大师,但是这个东西(webgl)看起来非常敏感并且容易被任何错误分解,我使用Canvas2D制作在线绘画应用程序并且从未遇到过类似的问题.

当我将所有脚本放入单个HTML或JS文件而不是许多小脚本时,我注意到性能要高得多,这可能是问题所在?

注意:我没有使用jQuery或任何其他库.(仅限glMatrix和RequestAnimationFrame脚本)

问题:在重新编写我的引擎之前请给我一些提示,我不想犯同样的错误!

对不起语言

performance webgl

3
推荐指数
1
解决办法
2750
查看次数

C++,请向Python用户解释类?

我正在尝试学习C++,感谢这篇文章,我发现C++和Python以及Javascript之间存在许多相似之处:http://www.cse.msu.edu/~cse231/python2Cpp.html

但我根本无法理解C++类,它们看起来像Javascript原型,但并不那么容易.

例如:

//CLxLogMessage defined in header

class myLOG: public CLxLogMessage{
  public:
    virtual const char *    GetFormat (){
            return "Wavefront Object";
    }

    void    Error (const std::string &msg){
            CLxLogMessage::Error (msg.c_str ());
    }

    void    Info (const std::string &msg){
            CLxLogMessage::Info (msg.c_str ());
    }

 private:
    std::string     authoringTool;
};
Run Code Online (Sandbox Code Playgroud)

问题:这是什么公共/私人的东西!?

编辑:老实说,我比Python更喜欢C++,因为我可以学习所有内容的真实含义,而不是简单的自动命令,例如我更喜欢单独使用"int X"而不是"X".

谢谢

c++

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

标签 统计

c++ ×3

opengl ×2

webgl ×2

freeglut ×1

glfw ×1

glsl ×1

gtk ×1

javascript ×1

matrix ×1

performance ×1

vbo ×1