![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenGL
丿寒风
网易游戏3年,游戏创业4年,3D设计软件架构师4年...
展开
-
三 OpenGL常见平面图形绘制代码
// 代码模板#include void displayFunc(){ glClearColor(0.0f, 0.0f, 0.0f, 0.0f);// 在RGB模式下,使用glClearColor清空之后画布的颜色 glClear(GL_COLOR_BUFFER_BIT);// 清空画布 glColor3f(1.0f, 0.0f, 0.0f);// 设置画笔颜色原创 2015-04-23 18:17:45 · 5277 阅读 · 0 评论 -
灰度图、高度图和法线贴图
灰度图某点的颜色为P(R,G,B),灰度计算方法:浮点算法:Gray = R*0.3+G*0.59+B*0.11;整数方法:Gray = (R*30+G*59+B*11)/100;移位方法:Gray = (R*76+G*151+B*28)>>8;平均值法:Gray =(R+G+B)/3;仅取绿色:Gray = G;则点P在灰度图中的颜色为(Gray,Gray,Gray)高度图高度图一般是原创 2016-09-19 16:53:42 · 8208 阅读 · 0 评论 -
OpenGL中的坐标系和变换
坐标系模型坐标模型坐标是以物体某一点为原点而建立的坐标系,该坐标系仅对该物体适用,用来简化对物体各部分坐标的描述。物体放到场景中时,各部分经历的坐标变换相同,相对位置不变,所以可视为一个整体,与人类的思维习惯一致。世界坐标世界坐标系以屏幕中心为原点(0,0,0)。你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。长度单位这样来定: 窗口范围按此单位恰好是(-1,-1)到(1,1)。相原创 2016-07-21 15:46:34 · 983 阅读 · 0 评论 -
OpenGL数学基础之矩阵
三维空间物体的运动使用变换来表示,包括三种:平移变换(translate),旋转变换(rolate),伸缩变换(scale),变换量可以使用4x4的矩阵(Matrix)表示,变换过程就是对物体的所有顶点都乘以这个矩阵。矩阵乘法⎡⎣⎢⎢1cea1fbd1⎤⎦⎥⎥ \begin{bmatrix} 1 & a & b \\ c & 1 & d \\ e & f & 1 \\ \end{bmatrix}原创 2016-07-25 00:10:39 · 2192 阅读 · 2 评论 -
八 shader中数据传递
shader的使用流程编写vertex Shader和fragment shader源码。创建两个shader 实例:GLuint glCreateShader(GLenum type); [gl.createShader]给Shader实例指定源码。 glShaderSource [gl.shaderSource]编译shaer源码 void glCompileShader(GLuint原创 2016-07-21 15:09:17 · 1190 阅读 · 0 评论 -
六 cocos2dx(3.X)中使用shader
原文链接:http://blog.csdn.net/xufeng0991/article/details/47256583一 shader的基本概念1 什么是shadershader即着色器,就是专门用来渲染3D图形的一种技术。 通过shader,可以自己编写显卡渲染画面的算法,使画面更漂亮、更逼真。2 shader分类shader又分两种,一种是顶点shader(3D图形是由三角形组成的,顶点s原创 2016-07-20 12:12:26 · 6717 阅读 · 1 评论 -
七 OpenGL ES 2.0 渲染流程整理
OpenGL渲染流程及渲染管线,OpenGL ES2.0的渲染管线如下图所示,阴影部分为可编程阶段。下面是对图中的每个过程的详细解释:1 VBO/VAO(顶点缓冲区对象或顶点数组对象)VBO/VAO是cpu提供给GPU的顶点信息,包括了顶点的位置、颜色、纹理坐标(用于纹理贴图)等顶点信息。 VBO,全名Vertex Buffer Object。它是GPU里面的一块缓冲区,当我们需要传递数据的时候,原创 2016-07-19 19:02:41 · 6091 阅读 · 1 评论 -
五 cocos2dx(3.X)中调用OpenGL
最近几个月一直在用pomelo写后端,现在项目接近尾声,终于有时间继续研究下OpenGL相关的东西了。OpenGL本身是跨平台的,但是每个平台的开发环境并不一样,把OpenGL的代码放在cocos里面运行就方便多了。下面就是一个最简单的示例,在cocos中调用OpenGL方法,将窗口设置成蓝色。首先新建一个cocos项目,删掉不需要的示例代码, 重写draw和onDraw方法原创 2015-08-03 12:05:35 · 1878 阅读 · 0 评论 -
一 OpenGL数据类型和简单绘制
一 基本数据类型GLenum: 用于GL枚举的无符号整型。GLboolean: 用于单布尔值。OpenGL ES还定义了其自己的“真”和“假”值(GL_TRUE和GL_FALSE)以避免平台和语言的差别。GLbitfield: 用于将多个布尔值(最多32个)打包到单个使用位操作变量的四字节整型。GLbyte: 有符号单字节整型。GLshort: 有符号双字节整型。GLint原创 2015-04-20 13:08:39 · 1296 阅读 · 0 评论 -
二 OpenGL的VS环境配置
网上有不少教程都说要把下载下来的库放到系统中,像我这样有代码洁癖的人,是不容污染系统库的,所有就有了下面这篇博客。一 下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip随便解压到一个目录中,我这里的目录是:D:\libs\glut二 环境配置1 头文件包含项目》配置属性原创 2015-04-21 10:08:59 · 1019 阅读 · 1 评论 -
四 OpenGL中的变换及示例
一 视点变换相机位置(视点)的变换void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez, GLdouble centerx,GLdouble centery, GLdouble centerz , GLdouble upx,GLdouble upy,GLdouble upz)二 模型变换模型位置原创 2015-04-23 19:47:15 · 1411 阅读 · 0 评论 -
VAO 与 VBO 的前世今生
VAO 与 VBO 的前世今生在现代OpenGL(3.0+)的体系里,VAO和VBO已经是个很基本的概念了,是学习GL必须要理解的一个点。昨天,组内的同学在学习Learn OpenGL的时候,就被这两个概念给拦住了。当然,具体遇到的问题倒不是理解障碍,实质是不清楚这几个概念的本质。我想了一下,空讲概念确实太虚,尤其是OpenGL这种带有历史尘埃的玩意。GL是一个工业上的标准,历史悠久,那么...转载 2018-06-26 12:41:50 · 1318 阅读 · 1 评论