精华内容
下载资源
问答
  • Opengl vs2013环境配置资源 Opengl vs2013环境配置资源 Opengl vs2013环境配置资源 Opengl vs2013环境配置资源 Opengl vs2013环境配置资源
  • OpenGL VS2015 工程模板.rar OpenGL VS2015 工程模板.rar QQ:21497936 OpenGL VS2015 工程模板.rar OpenGL VS2015 工程模板.rar
  • OpenGL vs2012 环境搭建

    2014-09-04 14:04:47
    OpenGL vs2012 环境搭建
  • hwui opengl VS skia opengl VS skia vulkan?

    千次阅读 2018-11-22 19:19:31
    之前讨论过skia codec部分在o,p上的变化,比如增加了heif解码等。...从o开始hwui渲染支持skia opengl,原来hwui只支持opengl渲染,只不过在o里,skia opengl是可选的方式,默认还是opengl,但在p上已经默认采用ski...
        

    之前讨论过skia codec部分在o,p上的变化,比如增加了heif解码等。
    其实skia在android o,p的变化不只这些。

    印象最深刻的还是渲染部分

    从o开始hwui渲染支持skia opengl,原来hwui只支持opengl渲染,只不过在o里,skia opengl是可选的方式,默认还是opengl,但在p上已经默认采用skia opengl了,而且去掉了选择。

    Android o上的选项

    clipboard.png

    Android O上相关的代码

    /**
     * Defines the rendering pipeline to be used by the ThreadedRenderer.
     *
     * Possible values:
     * "opengl", will use the existing OpenGL renderer
     * "skiagl", will use Skia's OpenGL renderer
     * "skiavk", will use Skia's Vulkan renderer
     *
     * @hide
     */
    public static final String DEBUG_RENDERER_PROPERTY = "debug.hwui.renderer";

    上边定义了可选的几个选项,是不是看到了vulkan,看来android早有打算

    Readback& RenderThread::readback() {
    if (!mReadback) {
        auto renderType = Properties::getRenderPipelineType();
        switch (renderType) {
            case RenderPipelineType::OpenGL:
                mReadback = new OpenGLReadbackImpl(*this);
                break;
            case RenderPipelineType::SkiaGL:
            case RenderPipelineType::SkiaVulkan:
                // It works to use the OpenGL pipeline for Vulkan but this is not
                // ideal as it causes us to create an OpenGL context in addition
                // to the Vulkan one.
                mReadback = new skiapipeline::SkiaOpenGLReadback(*this);
                break;
            default:
                LOG_ALWAYS_FATAL("canvas context type %d not supported", (int32_t) renderType);
                break;
        }
    }
    return *mReadback;

    }
    同样看到了vulkan,以及相关代码,但是并没有启动,应该还没有实现好

    Android P上的代码

    Readback& RenderThread::readback() {
    if (!mReadback) {
        auto renderType = Properties::getRenderPipelineType();
        switch (renderType) {
            case RenderPipelineType::OpenGL:
                mReadback = new OpenGLReadbackImpl(*this);
                break;
            case RenderPipelineType::SkiaGL:
                mReadback = new skiapipeline::SkiaOpenGLReadback(*this);
                break;
            case RenderPipelineType::SkiaVulkan:
                mReadback = new skiapipeline::SkiaVulkanReadback(*this);
                break;
            default:
                LOG_ALWAYS_FATAL("canvas context type %d not supported", (int32_t)renderType);
                break;
        }
    }
    return *mReadback;

    }
    看上去p上hwui已经开始支持vulkan了

    class SkiaVulkanReadback : public Readback {
    public:
    SkiaVulkanReadback(renderthread::RenderThread& thread) : Readback(thread) {}
    virtual CopyResult copySurfaceInto(Surface& surface, const Rect& srcRect,
            SkBitmap* bitmap) override {
        //TODO: implement Vulkan readback.
        return CopyResult::UnknownError;
    }
    virtual CopyResult copyGraphicBufferInto(GraphicBuffer* graphicBuffer,
            SkBitmap* bitmap) override {
        //TODO: implement Vulkan readback.
        return CopyResult::UnknownError;
    }

    但看代码实际上还是未启用状态可能有很多问题还没解决

    RenderPipelineType Properties::getRenderPipelineType() {
    if (sRenderPipelineType != RenderPipelineType::NotInitialized) {
        return sRenderPipelineType;
    }
    char prop[PROPERTY_VALUE_MAX];
    property_get(PROPERTY_RENDERER, prop, "skiagl");
    if (!strcmp(prop, "skiagl")) {
        ALOGD("Skia GL Pipeline");
        sRenderPipelineType = RenderPipelineType::SkiaGL;
    } else if (!strcmp(prop, "skiavk")) {
        ALOGD("Skia Vulkan Pipeline");
        sRenderPipelineType = RenderPipelineType::SkiaVulkan;
    } else {  //"opengl"
        ALOGD("HWUI GL Pipeline");
        sRenderPipelineType = RenderPipelineType::OpenGL;
    }
    return sRenderPipelineType;

    Android p上默认已经是skiagl了,而且skiavk已经ready或者至少可以work了

    效率问题

    skia opengl会比opengl快吗?

    网上很多人都表示skia opengl比opengl快,但是从实现的角度上讲核心没有不同,不同的可能是模块代码结构流程,并没有实质的提升,更不会出现能从使用者的角度观察到变化。因此做了一个实验,在60fps的一个场景下对opengl和skia opengl的gl绘制耗时做了一个对比。
    OpenGL
    clipboard.png

    OpenGL skia
    clipboard.png

    draw: display list绘制信息
    prepare: 同步时间
    Process: gl绘制时间
    Execute: swapbuffer时间

    从上边的数据可以看到两种方式process的时间基本没有差别,而且整体渲染的时间也不相上下。所以从实验角度也不存在谁比谁更快。
    而且两个cpu使用情况也基本相同。没什么差别。
    clipboard.png

    真正的提升应该是在vulkan实现之后

    arm官方和提供了一些测试数据表明无论从性能还是功耗上都比opengl es有很大提升。如下链接有些可能需要翻墙。
    https://community.arm.com/gra...
    https://www.youtube.com/watch...
    clipboard.png

    clipboard.png

    这是官方的数据,有必要去了解下android vulkan以及skia vulkan。

    • Allows to set rendering pipeline mode to OpenGL (default), Skia OpenGL

      • or Vulkan.

    */
    //#define PROPERTY_RENDERER “debug.hwui.renderer"
    在android p上可以通过设置上边的属性为skiavk来指定vulkan,但是在o上不要这么做,因为在o上vulkan还没有真正实现,会有很多问题比如应用打不开等等。
    下边是在android p上同一场景的一组数据对比,看数据总体上skia vulkan比skia opengl有很比较大的提升,但是又一些很大的凸起,不太稳定,没有skia opengl平稳,可能还没优化好,也许要等到adnroid 9.2或者android Q才能正式发布。
    skia OpenGL
    clipboard.png

    skia vulkan
    clipboard.png

    android 2DUI的渲染发展大概是这么一个进化过程

    Android早期通过skia库进行2d渲染,后来加入了hwui利用opengl替换skia进行大部分渲染工作,现在开始用skia opengl替换掉之前的opengl,从p的代码结构上也可以看出,p开始skia库不再作为一个单独的动态库so,而是静态库a编译到hwui的动态库里,将skia整合进hwui,hwui调用skia opengl,也为以后hwui使用skia vulkan做铺垫。

    展开全文
  • opengl VS环境配置

    千次阅读 2016-04-02 19:06:19
    opengl VS环境配置 (1)把include文件夹内东西全部复制到x:\Program Files\Microsoft\Visual Studio 10.0\VC\include文件夹中 (2)把lib文件夹内东西放到静态函数库所在文件夹(即与include并排的lib文件夹下)。 ...
    opengl VS环境配置
    (1)把include文件夹内东西全部复制到x:\Program Files\Microsoft\Visual Studio 10.0\VC\include文件夹中
    (2)把lib文件夹内东西放到静态函数库所在文件夹(即与include并排的lib文件夹下)。
    (3)把System32文件夹内东西全部放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32和SysWOW64)

    新建好工程后
    链接OpenGL libraries。在Visual C++中先右击项目,选择属性,找到连接器标签,最后在输入中的附加依赖库加上
    OpenGL32.lib
    GLu32.lib

    GLaux.lib


    下载地址:http://download.csdn.net/detail/cracent/9479841

    展开全文
  • OpenGL VS2012环境搭建以及第一个OpenGL例子(WIN7 64位系统)
  • OPenGL VS2013配置

    2016-07-28 18:15:42
    超级宝典五VS2013配置OPenGL环境,亲试有效
  • OpenGL VS2012环境搭建以及第一个OpenGL例子 WIN7 64位系统
                   

    学习OpenGL是想在Coocs2d-x中加入读取Maya等软件做出来的动画文件。


    在WIN7 64位系统上搭建OpenGL VS2012开发环境。


    先下载glutdlls这个压缩包,里面有编译好的DLL和LIB。

    http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip


    解压后。



    (1) 把头文件复制到

    F:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\gl

    这里新建了gl这个文件夹,所以引用头文件需要

    #include<gl/glut.h>

    (2) 把 lib 复制到

    F:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib

    (3) 把DLL复制到

    C:\Windows\System32


    64位系统用户还要复制一份到
    C:\Windows\SysWOW64

    然后就可以打开你的VS2012了。

    (1) 新建一个WIN32控制台程序。项目名随便自己写。



    (2) 添加代码文件,以 opengl.c 为例子:


    #include<gl/glut.h>void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT);     //清除颜色 glRectf(-0.5f,-0.5f,0.5f,0.5f);    //画一个矩形 glFlush();   //让前面的命令立即执行而不是在缓冲区,与fflush(stdout)作用类似}int main(int argc,char* argv[]){ glutInit(&argc,argv);    //初始化glut,必须调用,复制黏贴这句话即可 glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); //设置显示方式,RGB、单缓冲。当然还有GLUT_INDEX索引颜色 GLUT_DOUBLE双缓冲(Qt中看到过双缓冲) glutInitWindowPosition(100,100);   //位置 glutInitWindowSize(400,400);//窗口大小 glutCreateWindow("第一个OpenGL程序");  //创建窗口,设置标题 glutDisplayFunc(&myDisplay);  // 当绘制窗口时调用myDisplay,像Cocos2d-x刷帧Draw中的操作 glutMainLoop();  //消息循环 return 0;}



    (3) F5编译运行程序,看到结果:




    工程打包下载:

    http://download.csdn.net/detail/cp790621656/6375273






               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • OpenGL VS 配置

    2020-11-06 11:03:17
    首先明白OpenGL其实是一个标准,所以各家的实现不同,各个厂商的实现也是不同,它依赖于具体的硬件比如AMD或者Intel,所以需要下载一个...新建一个空项目,然后切换到文件夹视图,因为使用vs默认的视图,会让项目变得混乱 创

    首先明白OpenGL其实是一个标准,所以各家的实现不同,各个厂商的实现也是不同,它依赖于具体的硬件比如AMD或者Intel,所以需要下载一个库去调用,应该可以这么说.这样不用直接去调用底层的opengl的库

    下载地址:🔗GLFW
    在这里插入图片描述

    哪个版本都无所谓,因为这个版本指的是生成应用程序的版本是64位的还是32位的.不是指的操作系统的版本.

    由于下载速度慢,所以将具体的库文件放在了QQ群:1140421605

    在这里插入图片描述

    接着进行配置

    新建一个空项目,然后切换到文件夹视图,因为使用vs默认的视图,会让项目变得混乱

    在这里插入图片描述

    创建一个文件夹src,添加一个cpp文件,即将测试程序代码(来自GLFW的网址)复制进去.

    #include <GLFW/glfw3.h>
    
    int main(void) {
        GLFWwindow* window;
    
        /* Initialize the library */
        if (!glfwInit())
            return -1;
    
        /* Create a windowed mode window and its OpenGL context */
        window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
        if (!window) {
            glfwTerminate();
            return -1;
        }
    
        /* Make the window's context current */
        glfwMakeContextCurrent(window);
    
        /* Loop until the user closes the window */
        while (!glfwWindowShouldClose(window)) {
            /* Render here */
            glClear(GL_COLOR_BUFFER_BIT);
    
            /* Swap front and back buffers */
            glfwSwapBuffers(window);
    
            /* Poll for and process events */
            glfwPollEvents();
        }
    
        glfwTerminate();
        return 0;
    }
    

    接着,右击项目,找到项目路径

    在这里插入图片描述

    回到Solution的文件夹,创建一个文件夹放依赖的库dependences

    在这里插入图片描述

    进入denpendences,创建一个文件夹GLFW,并将下载的库文件includelib-vc2019放入该文件夹下,表示这个是GLFW的库文件和头文件

    在这里插入图片描述

    回到VS,然后右击项目,选择属性,进行配置

    在这里插入图片描述

    选择,注意第一个Configuration选择所有,然后platform选择你对应的下载的32bit还是64bit,为了省事,我直接选择了all所有,这是为了你build的环境设置.你告诉vs你需要生成哪个平台下的程序.

    在这里插入图片描述

    然后需要告诉vs需要从哪里找到依赖的头文件

    在这里插入图片描述

    添加$(Solution)dependences\include 这里使用了vs的宏Solution表示解决方案的路径即sln文件所在目录. 这样你给到别人这个项目的时候,不要别人再进行配置.而如果你直接复制自己include的路径,在发给别人之后还需要配置该路径,因为至少计算机名是不一样的,比如我的叫做MartinTai.
    在这里插入图片描述

    这个时候,你发现cpp文件include不报错了 ,即可以进行编译了,编译已经没有问题了.还剩下链接的错误.所以这个时候要需要配置linker的.

    同样,你需要添加库文件所在目录.

    在这里插入图片描述

    在这里插入图片描述

    这时候,你只是告诉vs你外来库的路径,并没有告诉vs需要链接哪个库.所以还需要进入input页签.

    在这里插入图片描述

    添加这两个库,其中glfw3.lib是GLFW的库,也就是你下载之后lib-vs2019的里面的静态库.还有一个是Opengl32.lib是因为需要调用的底层的opengl的函数.

    在这里插入图片描述

    最后确定即可.最终执行结果.
    在这里插入图片描述

    插曲:如果你不添加Opengl32.lib 这个不确定你下载的版本是不是也叫这个名,这个不要添加外来的库文件,只需要添加即可,因为这是系统自带的.

    这里我没有添加,在执行的时候会报glClear链接错误.
    在这里插入图片描述

    要解决添加什么库的问题:复制函数名 然后用浏览器搜下,可以看到是win32的api
    在这里插入图片描述

    在这里插入图片描述

    然后点进去,就可以看到所需要的库文件名称.

    展开全文
  • OpenGL VS2019配置过程 工具安装过程 1. 开发工具VS2019(要安装组件C++),详细的安装过程“略”。 2. 下载GLFW,链接地址:https://www.glfw.org/download.html。这里下载的是64位源码文件包,放到一个指定目录...
  • OpenGl VS2012环境搭建

    千次阅读 2015-08-23 15:10:22
    近段时间计划研究cocos源码,第一步当然是学习OpenGL。千里之行,始于足下。开发环境总是要浪费程序员太多时间。昨天捣鼓一天OpenGL的开发环境,看了网上N多的环境搭建教程和问题解决方案... VS2012环境搭建之freeglut
  • OpenGL VS2019配置过程 总体的配置流程和工具参考了LearnOpenGL的内容,但是过程中跳进了坑中,为了爬坑耗费了些时间,在博客中记录配置过程,方便以后查阅,也方便路人爬坑。LearnOpenGL的教材地址:...
  • OpenGL vs2010 ActiveX Control Test Containervs2010中的TSTCON( ActiveX Control Test Container )工具非自动安装,而是作为一个例程提供。所以应找到该例程,并编译:如vs2010安装在默认路径则1, 进入:C:\...
  • <div><p>Maybe the new opengl vsync options could be cnahged to better reflect what was choosen for vulkan? <p>I mean... right now is this way: Opengl -1 = Adaptive sync 0 = Off 1 = On ...
  • OpenGL VS环境配置

    2016-04-02 19:25:41
    OpenGLVS环境配置 详情见博客:http://blog.csdn.net/cracent/article/details/51045010
  • opengl vs2017配置

    2019-09-25 19:47:40
    忘了记录一下opengl的环境配置问题:可以参考环境配置
  • OpenGL VS2010 CMake

    2013-01-04 20:38:54
    前言:在使用OpenGL时,经常需要配置OpenGL的环境,感觉比较麻烦,采用CMake进行配置比较比较方便的解决配置过程中遇到的问题。这里主要是介绍如何通过CMake建立一个GL的工程。 详细可以参考我的博客:...
  • NULL 博文链接:https://wuzijingaip.iteye.com/blog/1874760
  • 1、通过VS2013编译完成的 2、包含win32下Debug、rlease下的静态和动态库 3、环境搭建过程参考http://blog.csdn.net/humanbeng/article/details/47905823
  • VS2013 OpenGl 利用 Picture 控件绘制图形 可用鼠标实现平移 旋转 缩放 程序简洁易读适合初学者
  • 原创,装在请说明,里面详细介绍了本人初学OpenGL时使用VS2010搭建环境的过程,包括GLUT、GLEW、FreeGLUT、GLTools库的安装包或源码下载,以及针对源码如何使用CMAKE进行编译,针对其中可能出现的问题以及解决方案都...
  • OpenGL VS C++ 环境

    2010-11-19 15:26:21
    Microsoft Visual Studio 9.0\VC 整个文件夹覆盖include Include: GLU.H, GL.H, GLAUX.H, GL/GL.H, GL/GLAUX.H, GL/glext.h, GL/GLU.H, GL/glu_.h, GL/glut.h ...DLL:glu32.dll, glut32.dll, glut.dll, opengl32.dll
  • vs2017的工程转换到2010遇到很多坑,下面总结一下 1、vs2017的工程2010可以直接用,方法是 新建一个工程-&gt; 打开现有项目 vcxproj 2、因为不同vs平台版本不同,所以需要切换平台 3、改调试信息为 是 ...
  • glfw内有docs官方向导 如何配置可参见大佬的https://blog.csdn.net/qq_37338983/article/details/78997179
  • <p>When rendering with OpenGL: <p><img width="1136" alt="gfx_cube_example_opengl" src="https://img-blog.csdnimg.cn/img_convert/67c6df4d2cc2ba9f26db7d243873b3a0.png" /></p> <p><img width="582" alt="my_...
  • Opengl VS2008开发环境

    2014-10-31 17:49:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • OpenGL VS2008配置

    千次阅读 2010-04-20 20:21:00
    将include文件夹Copy的VS安装目录VC目录下的include文件夹下lib文件夹 - lib文件夹dll文件夹 - Windows/System32VS2008下新建一个C++的空工程,添加一个cpp文件,测试以下代码: #include void myDisplay(void){...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,207
精华内容 1,682
关键字:

openglvs