zoukankan      html  css  js  c++  java
  • opengl 笔记

     1. 

    本函数可以禁用多边形正面或背面上的光照、阴影和颜色计算及操作,消除不必要的渲染计算是因为无论对象如何进行旋转或变换,都不会看到多边形的背面。用GL_CULL_FACE参数调用glEnable和glDisable可以启用或禁用剔除。

    glEnalbe(GL_CULL_FACE) 开启剔除操作效果

    glDisable(GL_CULL_FACE) 关闭剔除操作效果

    2.

    当我们需要绘制透明图片时,就需要关闭它

    glDisable(GL_DEPTH_TEST);

    3. glBlendFunc

    http://blog.chinaunix.net/uid-20622737-id-2850251.html

        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glEnable(GL_BLEND);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
        glBlendEquation(GL_FUNC_ADD);
        glp_bt.draw();
        glp_up.draw();

    4   设置浏览窗口大小

    glViewport(0, 0, 800, 600);

    5. glBlendEquation

     https://blog.csdn.net/flycatdeng/article/details/82664564

    6 清空显存数据

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    7.  opengl  纹理坐标和 定点坐标

    glTexCoord2f( 0.0, 0.0 ); glVertex3f( -1.0, -1.0, 1.0 );

    glTexCoord2f( 1.0, 0.0 ); glVertex3f( 1.0, -1.0, 1.0 );

    glTexCoord2f( 1.0, 1.0 ); glVertex3f( 1.0, 1.0, 1.0 );

    glTexCoord2f( 0.0, 1.0 ); glVertex3f( -1.0, 1.0, 1.0 );

    Vertex v0(glm::vec3(-1, 1, 0) , glm::vec2(0, 1));
    Vertex v1(glm::vec3(1, 1, 0) , glm::vec2(1, 1));
    Vertex v2(glm::vec3(1, -1, 0 ) , glm::vec2(1.0, 0));
    Vertex v3(glm::vec3(-1, -1, 0), glm::vec2(0, 0));

    8  多线程

    OpenGL和多线程基本上是敌人:在任何给定的时刻,只有一个线程可以“拥有渲染上下文”-是的,只要线程切换,您就可以切换GL渲染上下文,但要考虑成本,并考虑从一个OEM驱动程序到下一个,它没有得到很好的支持,可能对某些人而不是其他人有用。唯一的逻辑(也是明智的)选择是将所有OpenGL调用都保留在一个线程中(注意:有一些例外,有些线程可以在gl中调用这些与流数据有关的东西,而无需拥有渲染上下文) 。不幸的是,我们不能像建议的那样简单地在线程周围传递GL上下文,我们必须调用(w)glMakeCurrent,它告诉GL“此调用者线程现在拥有您”,但是无法告诉其他线程...

  • 相关阅读:
    应用默认编码不对的问题定位
    以http server为例简要分析netty3实现
    用qemu+gdb tcp server+CDT调试linux内核启动-起步
    用virtualbox+模拟串口+CDT调试linux内核 TCP/IP协议栈-起步
    【转】常见容错机制
    python文档注释参数获取
    scrapy爬取图片
    xpath语法
    python爬虫爬取赶集网数据
    爬虫小总结
  • 原文地址:https://www.cnblogs.com/luoyinjie/p/11064218.html
Copyright © 2011-2022 走看看