精华内容
下载资源
问答
  • OPENGL绘制文字

    千次阅读 2014-08-21 15:56:55
     用OPENGL绘制文字比较常见的方法是利用显示列表。创建一系列显示列表,每个字符对应一个列表编号。例如,'A'对应列表编号1000+'A',‘B’对应列表编号1000+'B',以此类推。绘制一个字符串时,依次调用字符串中每个...

    OPENGL没有提供直接绘制文字的功能,需要借助于操作系统。

      用OPENGL绘制文字比较常见的方法是利用显示列表。创建一系列显示列表,每个字符对应一个列表编号。例如,'A'对应列表编号1000+'A',‘B’对应列表编号1000+'B',以此类推。绘制一个字符串时,依次调用字符串中每个字符所对应的列表编号。

      在Windows操作系统上,可以使用wglUseFontBitmaps函数来批量的产生显示字符用的显示列表。

      下面给出一个示例代码。该代码时在OPENGL红宝书示例程序的基础上进行修改,只做示例之用。在实际的程序中使用时,需要根据具体的需求进行修改。

      运行此程序的环境配置参考OPENGL红宝书中示例程序的环境配置。

     

    复制代码
    #include <windows.h>
    #include <GL/gl.h>
    #include <GL/glu.h>
    #include <GL/freeglut.h>
    
    #define MAX_CHAR    128
    GLuint TextFont;
    
    void XPrintString(char *s)
    {
        glPushAttrib (GL_LIST_BIT);
    
        //调用每个字符对应的显示列表,绘制每个字符
        for(; *s!='\0'; ++s)
            glCallList(TextFont + *s);
    
        glPopAttrib ();    
    }
    
    void display(void)
    {
        glClear(GL_COLOR_BUFFER_BIT);
    
        glColor3f(1.0, 1.0, 1.0);
    
        glRasterPos3f(0.5, 0.5, 0.0);
        XPrintString("hello!");
    
        glFlush();
    }
    
    void init(void)
    {
        glClearColor(0.0, 0.0, 0.0, 0.0);
    
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
    
        //申请MAX_CHAR个连续的显示列表编号
        TextFont = glGenLists(MAX_CHAR);
            
        //把每个字符的绘制命令都装到对应的显示列表中
        wglUseFontBitmaps(wglGetCurrentDC(), 0, MAX_CHAR, TextFont);  
    }
    
    int main(int argc, char ** argv)
    {
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
        glutInitWindowSize(250, 250);
        glutInitWindowPosition(100, 100);
        glutCreateWindow("Hello ");
        init();
        glutDisplayFunc(display);
        glutMainLoop();
        return 0;
    }
    复制代码

     

     

     

    展开全文
  • opengl绘制文字

    2020-12-04 11:48:40
    在osgearth、UE4这样的引擎里,可以显示文字,opengl不提供字库,也无法直接绘制文字

    在osgearth、UE4这样的引擎里,可以直接调用显示文字的方法,opengl不提供字库,也无法直接绘制文字。

    展开全文
  • 说明:OpenGL绘制文字一直是一个难点,网络上很多是使用Freetype第三方库来绘制文字.本例子中不使用任何第三方库,仅仅使用GDI+动态生成字符信息. 同时使用C#进行开发OpenGL,仅需少量的代码就能开发出来一个高效的软件!
  • OpenGL绘制文本

    千次阅读 2014-06-02 15:00:17
     用OPENGL绘制文字比较常见的方法是利用显示列表。创建一系列显示列表,每个字符对应一个列表编号。例如,'A'对应列表编号1000+'A',‘B’对应列表编号1000+'B',以此类推。绘制一个字符串时,依次调用字符串中每个...

     OPENGL没有提供直接绘制文字的功能,并且OpenGL也没有自带的专门的字库。因此,要显示文字,就必须依赖操作系统所提供的功能了。

           各种流行的图形操作系统,例如windows系统和linux系统,都提供了一些功能,以便能够在OpenGL程序中方便的显示文字。

           最常见的方法就是,我们给出一个字符,给出一个显示列表编号,然后操作系统由把绘制这个字符的OpenGL命令装到指定的显示列表中。当需要绘制字符的时候,我们只需要调用这个显示列表即可。

           不过,Windows系统和Linux系统,产生这个显示列表的方法是不同的(虽然大同小异)。本文针对Windows系统。

          假如我们要显示的文字全部都是ASCII字符,则总共有0到127这128种可能,因此可以预先把所有的字符分别装到对应的显示列表中,然后在需要时调用这些显示列表。

           http://liuhuajie0123.blog.163.com/blog/static/13593073201112611111900/

      用OPENGL绘制文字比较常见的方法是利用显示列表。创建一系列显示列表,每个字符对应一个列表编号。例如,'A'对应列表编号1000+'A',‘B’对应列表编号1000+'B',以此类推。绘制一个字符串时,依次调用字符串中每个字符所对应的列表编号。

      在Windows操作系统上,可以使用wglUseFontBitmaps函数来批量的产生显示字符用的显示列表。

      下面给出一个示例代码。该代码时在OPENGL红宝书示例程序的基础上进行修改,只做示例之用。在实际的程序中使用时,需要根据具体的需求进行修改。

      运行此程序的环境配置参考OPENGL红宝书中示例程序的环境配置。

    #include <windows.h>
    #include <GL/gl.h>
    #include <GL/glu.h>
    #include <GL/freeglut.h>
    
    #define MAX_CHAR    128
    GLuint TextFont;
    
    void XPrintString(char *s)
    {
        glPushAttrib (GL_LIST_BIT);
    
        //调用每个字符对应的显示列表,绘制每个字符
        for(; *s!='\0'; ++s)
            glCallList(TextFont + *s);
    
        glPopAttrib ();    
    }
    
    void display(void)
    {
        glClear(GL_COLOR_BUFFER_BIT);
    
        glColor3f(1.0, 1.0, 1.0);
    
        glRasterPos3f(0.5, 0.5, 0.0);
        XPrintString("hello!");
    
        glFlush();
    }
    
    void init(void)
    {
        glClearColor(0.0, 0.0, 0.0, 0.0);
    
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
    
        //申请MAX_CHAR个连续的显示列表编号
        TextFont = glGenLists(MAX_CHAR);
            
        //把每个字符的绘制命令都装到对应的显示列表中
        wglUseFontBitmaps(wglGetCurrentDC(), 0, MAX_CHAR, TextFont);  
    }
    
    int main(int argc, char ** argv)
    {
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
        glutInitWindowSize(250, 250);
        glutInitWindowPosition(100, 100);
        glutCreateWindow("Hello ");
        init();
        glutDisplayFunc(display);
        glutMainLoop();
        return 0;
    }


    BOOL WINAPI wglUseFontBitmaps(   HDC hdc,   DWORD first,   DWORD count,   DWORD listBase );
    
    可以使用wglUseFontBitmaps函数来批量的产生显示字符用的显示列表。
    函数有四个参数:
    第一个参数是HDC,学过Windows GDI的朋友应该会熟悉这个。如果没有学过,那也没关系,只要知道调用wglGetCurrentDC函数,就可以得到一个HDC了。
    第二个参数表示第一个要产生的字符,字符从0开始,前128个字符是可显示字符,采用ASCII编码方式。
    第三个参数表示要产生字符的总个数,
    第 四个参数表示第一个字符所对应显示列表的编号。假如这里填1000,则第一个字符的绘制命令将被装到第1000号显示列表,第二个字符的绘制命令将被装到 第1001号显示列表,依次类推。我们可以先用glGenLists申请128个连续的显示列表编号,然后把第一个显示列表编号填在这里。

    绘制中文:

    void drawCNString(const char* str) 
    {
    	int len, i;
    	wchar_t* wstring;
    	HDC hDC = wglGetCurrentDC();
    	GLuint list = glGenLists(1);
    	len = 0;
    	for(i=0; str[i]!='\0'; ++i)
    	{
    		if( IsDBCSLeadByte(str[i]) )
    			++i;
    		++len;
    	}
    	wstring = (wchar_t*)malloc((len+1) * sizeof(wchar_t));
    	MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, str, -1, wstring, len);
    	wstring[len] = L'\0';
    	for(i=0; i<len; ++i)
    	{
    		wglUseFontBitmapsW(hDC, wstring[i], 1, list);
    		glCallList(list);
    	}
    	free(wstring);
    	glDeleteLists(list, 1);
    }

    绘制中文时,和绘制英文有一定的区别,英文的显示字符是有限的,因此可以生成所有字符的显示列表,然后根据要显示的字符,调用相应的显示列表。但是中文的字符太多,不可能生成所有的字符的显示列表。采用的方法是,要使用哪个字符,才生成那个字符的显示列表。

    因此,绘制英文的时候,可以不创建所有英文的显示队列,而是要用哪个英文,就创建该英文的显示队列。如下所示:

    void XPrintString(char *s)
    {
    	HDC hDC = wglGetCurrentDC();
    	GLuint list = glGenLists(1);
    	glPushAttrib(GL_LIST_BIT);
    	for(;*s!='\0';s++)
    	{
    		wglUseFontBitmaps(hDC,*s,1,list);
    		glCallList(list);
    	}
    	glDeleteLists(list,1);
    	glPopAttrib();
    }


    函数wglUseFontBitmapsW和wglUseFontBitmaps的第二个参数就是相应编码方式下的字符,可以说是相应字符的编码号。直接用该字符生成该字符的显示队列。默认的编码方式为ASCII方式。

    如下函数,进行字符集的转换:

    void display(void) 
    {
         glClear(GL_COLOR_BUFFER_BIT);
         selectFont(48, ANSI_CHARSET, "Comic Sans MS");
         glColor3f(1.0f, 0.0f, 0.0f);
         glRasterPos2f(-0.7f, 0.4f);
         drawString("Hello, World!");
         selectFont(48, GB2312_CHARSET, "楷体_GB2312");
         glColor3f(1.0f, 1.0f, 0.0f);
         glRasterPos2f(-0.7f, -0.1f);
         drawCNString("当代的中国汉字");
         selectFont(48, DEFAULT_CHARSET, "华文仿宋");
         glColor3f(0.0f, 1.0f, 0.0f);
         glRasterPos2f(-0.7f, -0.6f);
         drawCNString("傳統的中國漢字");
         glutSwapBuffers();
    }
    注意:汉字和英文不同,汉字默认是占用两个字符,因此需要将字节转换为宽字节。如

    <strong>MultiByteToWideChar</strong>

    的功能。


    展开全文
  • opengl绘制汉字

    千次阅读 2013-11-27 20:33:23
    OpenGL本身并没有绘制...OpenGL绘制文字,网络上已经有很多成熟的方式方法,我这里给 大家介绍的是我使用的方式,从绘制的效率上来说,速度上从已经达到我个人水平的最大值。 如果你有更好的方式,请联系我。  

    http://www.cnblogs.com/zhanglitong/p/3206497.html

    OpenGL本身并没有绘制文字的功能,他只是一个三维绘图的API集和,很多东西都要

    自己动手才可以实现。OpenGL绘制文字,网络上已经有很多成熟的方式方法,我这里给

    大家介绍的是我使用的方式,从绘制的效率上来说,速度上从已经达到我个人水平的最大值。

    如果你有更好的方式,请联系我。

      首先介绍下网络上的一些绘制方式。

      一、将要绘制的文字按照每一个字生成一个小纹理的方式,然后再用将纹理贴到网格

    的表面,绘制出来,例如:“博客园-你好”,则会生成6个小纹理,然后生成网格,将纹理

    贴到网格的表面。优点:每一个字的大小颜色都可选择。缺点:文字多了以后,频繁的切换

    纹理造成效率低下。OSG中使用了这种方式,效率极差,尤其是在文字更新的情况下。

      二、直接将随绘制的文本字符串生成一个纹理数据(而不是一个文字一个纹理),这样

    做效率上比第一种要好很多,缺点就是更新的时候要重新构建一个新的纹理。速度上有很大

    损失。两种方式的原理图如下:

      三、将所绘制的文字都放到一个较大的纹理上去,然后再纹理上做索引,当绘制的时候,

    去查表。在将纹理贴到网格上绘制出来,这种方式,速度很快,很多游戏引擎都在使用这种

    方式,存在的问题绘制的文字多了以后速度会变慢,占用大量的cpu时间,当然对于小的应

    用已经足够了,今天我提出的方式也是基于这样方式的,只是我在索引上最了一些改进,改

    进之后的算法,将不再进行查表操作,而是直接索引,一定程度上降低了cpu消耗,提搞了

    效率。纹理图片如下示意图:

      

    图片存的数据上也很重要,结合OpenGL,采用GL_ALPHA的上存储,这样可以大大

    降低图片所占用的显存空间,从而提高效率。

    下面定义一个文字所存储的信息,如下所示:

    复制代码
    class   Character
    {
    public:
        Character()
        {
            x0          =   0;
            y0          =   0;
            x1          =   0;
            y1          =   0;
        }
        /**
        *   存储当前字符在纹理上的坐标位置
        */
        unsigned short   x0;
        unsigned short   y0;
        unsigned short   x1;
        unsigned short   y1;
    };
    复制代码

     为了快速索引,减少查找的过程,我么要结合字体本上来做一些处理,我们知道一个汉字要占用2个字节

    两个字节所能表示的范围是0-65535,就是6万多个汉字,那么我们就声明一个这么大的数组来存储字符的

    信息:

    代码如下:

    Character   g_charMap[1<<16];

    当我们要绘制一个文字的时候,可以直接通过下标就可以直接定位到该字对应的信息了,例如我们绘制'中'

    就可以直接获取其在图片上的内容了:

    Character   getCharacter(wchar_t ch)
    {
        return g_charMap[ch]; 
    }

    然后这样也存在一个问题,即一张多大的纹理才可以容纳这么多的字符呢?如果是一般的应用,我们可以忽略

    这个问题,中国常用的汉字只有3000多个,假设是一个汉字占16*16的空间,那么一个1024*1024的纹理

    所能容纳的字符有 1024/16 * 1024/16 = 4096个,足够满足正常的需要,如果你是想做一个通用的,没有

    瑕疵的应用,我们就要修改我们的设计方式,我能一切从速度优先的方式考虑,我们在上面的Character类中

    增加一个字段描述字符所在的纹理句柄,如下:

    复制代码
    class   Character
    {
    public:
        Character()
        {
            x0          =   0;
            y0          =   0;
            x1          =   0;
            y1          =   0;
            texId       =   0;
        }
        unsigned short   x0;
        unsigned short   y0;
        unsigned short   x1;
        unsigned short   y1;
        //! 索引纹理,即当前字符所在的纹理
        unsigned         texId;
    };
    复制代码

    这样,就可以拜托之前的限制,实现大规模的绘制文字了。

    说完了方案,我们还有说下实现方式,说道文字绘制,不得不提的就是FreeType字体库了

    几乎所有的三维绘制文字的方式,都采用这个库。下面以代码的方式来介绍他,我们这里

    只用到其中很少的一部分(FreeType)相关内容这里不做介绍,有兴趣的同学可以自行了解。

    第一步:初始化字体库

    FT_Init_FreeType( &_library );

    第二步:加载字体

    FT_New_Face(_library,_fontFace,0,&_face);

    第三步:设置字体大小

    FT_Set_Char_Size( _face, fontSize << 6, fontSize << 6, 72, 72);

    第四步:获取字体的信息

    复制代码
    FT_Load_Glyph( face, FT_Get_Char_Index( face, code ), FT_LOAD_DEFAULT );
           
       
        FT_Glyph glyph;
        FT_Get_Glyph( face->glyph, &glyph );
    
        //Convert the glyph to a bitmap.
        FT_Glyph_To_Bitmap( &glyph, ft_render_mode_normal, 0, 1 );
        FT_BitmapGlyph bitmap_glyph = (FT_BitmapGlyph)glyph;
    
        //This reference will make accessing the bitmap easier
        FT_Bitmap& bitmap   =   bitmap_glyph->bitmap;
    复制代码

    第五步:将bmp数据写到纹理上

    glTexSubImage2D(GL_TEXTURE_2D,0,x,y,width,height,GL_ALPHA,GL_UNSIGNED_BYTE,data);

    第六步:生成网格,贴上纹理绘制文字

    复制代码
    RESULT  IGraphyDeviceImpl::draw2DText(const wchar_t* text,float x,float y,const Rgba4Byte& color,RectF* pOut)
    {
        
        typedef float   TextVertex[5];
        TextVertex  vert[2048 * 6];
        
        float       texWidth    =   (float)_fontDefault._textures._width;
        float       texHeight   =   (float)_fontDefault._textures._height;
        float       xStart      =   x;
        float       yStart      =   y;
        float       zStart      =   0;
        unsigned    index       =   0;
        unsigned    nSize       =   wcslen(text);
        float       fHeight     =   0;
       
        for (unsigned i = 0 ;i <  nSize; ++ i )
        {
            Character*  ch  =   _fontDefault.getCharacter(text[i]);
           
            int         h   =   ch->y1 - ch->y0;
            int         w   =   ch->x1 - ch->x0;
            /**
            *   第一个点
            */
            vert[index + 0][0]  =   xStart;
            vert[index + 0][1]  =   yStart;
            vert[index + 0][2]  =   zStart;
            vert[index + 0][3]  =   ch->x0/texWidth;
            vert[index + 0][4]  =   ch->y0/texHeight;
            /**
            *   第二个点
            */
            vert[index + 1][0]  =   xStart;
            vert[index + 1][1]  =   yStart + h;
            vert[index + 1][2]  =   zStart;
            vert[index + 1][3]  =   ch->x0/texWidth;
            vert[index + 1][4]  =   ch->y1/texHeight;
            /**
            *   第二个点
            */
            vert[index + 2][0]  =   xStart + w;
            vert[index + 2][1]  =   yStart + h;
            vert[index + 2][2]  =   zStart;
            vert[index + 2][3]  =   ch->x1/texWidth;
            vert[index + 2][4]  =   ch->y1/texHeight;
    
    
            /**
            *   第二个三角形
            */
            vert[index + 3][0]  =   xStart;
            vert[index + 3][1]  =   yStart;
            vert[index + 3][2]  =   zStart;
            vert[index + 3][3]  =   ch->x0/texWidth;
            vert[index + 3][4]  =   ch->y0/texHeight;
    
            /**
            *   第二个点
            */
            vert[index + 4][0]  =   xStart + w;
            vert[index + 4][1]  =   yStart + h;
            vert[index + 4][2]  =   zStart;
            vert[index + 4][3]  =   ch->x1/texWidth;
            vert[index + 4][4]  =   ch->y1/texHeight;
    
            /**
            *   第二个点
            */
            vert[index + 5][0]  =   xStart + w;
            vert[index + 5][1]  =   yStart;
            vert[index + 5][2]  =   zStart;
            vert[index + 5][3]  =   ch->x1/texWidth;
            vert[index + 5][4]  =   ch->y0/texHeight;
    
            index   +=  6;
            xStart  +=  w;
        }
        glColor4ub(color._r,color._g,color._b,color._a);
        /**
        *   对字体使用到的纹理和定点坐标进行排序
        */
        bindTexture2D(_fontDefault._textures._texture);
    
        CELL::Graphy::VertexDeclaration fontDesc[]    =   
        {
            0,  CELL::Graphy::TYPE_VERTEX,   CELL::Graphy::FORMAT_FLOAT,     3,  0, sizeof(TextVertex),
            0,  CELL::Graphy::TYPE_TEXCOORD0,CELL::Graphy::FORMAT_FLOAT,     2,  12, sizeof(TextVertex)
        };
    
        drawPrimitiveDirect(fontDesc,2,PT_TRIANGLELIST,vert,0,index);
    复制代码
    上面简单的介绍了如何使用FreeType与OpenGL绘制文字,笔者能力所致,说解不到之处,有误之处,敬请谅
    展开全文
  • void display(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f, 0.0f, 0.0f); glRasterPos2f(0.0f, 0.0f); drawString("Hello, World!...以上程序在绘制了Hello,World后如何设置文字的位置?
  • OpenGL文字绘制

    2017-10-14 14:20:01
    看这篇博客就够了,http://www.cnblogs.com/mattins/p/4126298.html 至于原创的东西,后续再补全吧
  • 如何用opengl绘制渐变正方体,且可以在正方体上绘制文字
  • OpenGL绘制立方体

    2014-04-11 01:09:43
    OpenGL绘制立方体,利用了简单的原理绘制了一个彩色的立方体。
  • OpenGL文字绘制(OpenGL text rendering)OpenGL文字绘制(OpenGL text rendering)OpenGL text output, Tuesday, 05 2009, 13:47, 26OpenGL is a 3D graphical interface, where text is displayed differently from ...
  • 主要介绍了Android openGl 绘制简单图形的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 使用Opengl绘制字体

    千次阅读 2013-12-06 16:58:56
    使用Opengl绘制字体 通过使用windos自带的字体,可以在opengl中方便的绘制多种字体。 bitmapFont类 下面介绍 bitmapFont 字体类及其成员函数: 首先是构造函数。 第一个构造函数:与winapi函数CreateFont(...)函数...
  • 在onDraw事件中,仅更新发送到着色器的值变量。precisionhighpfloat;precisionhighpsampler2D;uniformfloatuTime;uniformfloatuValue;uniformvec3iResolution;varyingvec4v_Color;varyingvec2vTextureCoord;...
  • Opengl绘制的图像字体

    2010-04-05 20:08:53
    一个OpenGL锻炼的很好的例子,绘制彩色字体!
  • 在工程中用opengl会坐标系之后需要进行相应的标注,开始使用的代码如下所示: wglUseFontBitmaps(wglGetCurrentDC(),0,256,1000);//将asii码字符装入显示列表 glListBase(1000); glRasterPos3f(0.525*m_scale,...
  • OpenGL绘制的3D环境

    2008-07-14 13:57:46
    OpenGL绘制的3D地形、建筑;第一人称视角;可控制移动和视角的仰视/俯视;包含可开启/关闭的平行光源和探照灯光源;建筑实现碰撞检测
  • VP5下的OpenGL绘制

    2019-04-13 22:28:57
    由于VP5不能实现“能量值”跟随效果,只能采用OpenGL绘制,同时可以限制非中文字符。 #include <vsgu.h> #include <vp.h> #include <vpApp.h> #include <vsChannel.h> #pragma comment...
  • https://www.freetype.org/freetype2/docs/glyphs/glyphs-3.html#section-1
  • openGL-添加/标记/绘制文字(Text)

    千次阅读 2018-08-11 09:53:59
    有时候我们在做图的时候可能需要将文字标记在相关的位置,openGL有很多相关的方法,这里为大家介绍一种: 代码 void* bitmap_fonts[7] = { GLUT_BITMAP_9_BY_15, GLUT_BITMAP_8_BY_13, GLUT_BITMAP_TIMES_...
  • Android调用OpenGL绘制曲线入门手册

    千次阅读 2018-04-18 10:15:19
    Android调用OpenGL绘制曲线入门手册 Android OpenGL ES2.0 JNI Cmake简介:该手册内容仅作为Android调用OpenGL实现绘制曲线图的入门手册,深入学习请参考手册推荐书籍。本手册针对采用jni接口实现java调用C++...
  • 开发语言:C++和IDE:VS2017,操作系统Windows版本windows SDK8.1,三方库:OpenGL。 项目功能: 显示平面字体 项目源码如下: /*********************包含链接的库文件**********************************************...
  • 对于opengl的学习来说,绘制一个三角形是学习一种计算机语言时的一个hello world级的入门程序,个人觉得相比主流语言的helloworld,openGL的入门确实是有一些劝退,虽然说有不错的教程,但简明与全面不可兼得,很...
  • ![图片说明]...类似图中的毫米文字,在地面指定位置绘制文字。显示列表那种只能绘制投影平面,文字不能倾倒。 2.如果有知道3Dbuilder场景网格的绘制也告诉我下哈,它的那个貌似可以绘到无穷远出。
  • 如题,默认库函数名称冲突,使用的是FreeType 2.6.5版本, 用控制台测试32位正常,然后将FreeType编译成64位,再去控制台测试就报错(无法正常启动程序0x000000c7,可能是我编译FreeType库lib错了吧,请问这个64位...
  • 使用openGL绘制正方体; 面1:使用简单颜色绘制,颜色为绿色; 面2:使用简单颜色绘制,颜色为渐变色; 面3:绘制一维纹理; 面4:绘制二维纹理; 面5:光照绘制,黄色; 面6:光照绘制,橘色; 绘制效果如下: ...
  • 这个是用Opengl写的一个橡皮筋的折线程序,里面有绘制折线的,还有绘制矩形的功能,功能挺多的。有填充画矩形和直线画矩形
  • 绘制带有纹理的三维字体 项目源码如下: #pragma comment( lib, “opengl32.lib” ) #pragma comment( lib, “glu32.lib” ) #pragma comment( lib, “glut32.lib”) #pragma comment( lib, “glew32.lib”) #...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,420
精华内容 3,368
关键字:

opengl绘制文字