OpenGL概述
来源:互联网 发布:佳明软件下载 编辑:程序博客网 时间:2024/05/01 11:02
渲染管线
顶点数据 -->顶点着色器 --> 细分控制着色器 --> 细分计算着色器 -->几何着色器 --> 图元设置 --> 剪切 --> 光栅化 --> 片元着色器--> 屏幕显示
注意:细分着色器:(可选)使用patch来描述一个物体的形状,结果是图元数量增加,外观更加平顺
几何着色器:(可选)可创建新的图元(邻接图元类型)
图元装配:将顶点组织成图元
剪切:落在视口之外的不需绘制: glEnable(GL_CLIP_PLANE0); //平面枚举量
gl_ClipDistance[0] = dot(vertex, plane); //计算平面方程
光栅化:将图元转化成片元,即一个“候选的像素”,可以放在帧缓存中
glDisable(GL_RASTERIZER_DISCARD); 开启光栅化
实例:三角形
void init( void )
{
glGenVertexArrays( NumVAOs, VAOs ); //初始化顶点数组对象
glBindVertexArray( VAOs[Triangles] );
GLfloat vertices[NumVertices][2] = {
{ -0.90f, -0.90f }, { 0.85f, -0.90f }, { -0.90f, 0.85f }, // Triangle 1
{ 0.90f, -0.85f }, { 0.90f, 0.90f }, { -0.85f, 0.90f } // Triangle 2
};
glGenBuffers( NumBuffers, Buffers );
glBindBuffer( GL_ARRAY_BUFFER, Buffers[ArrayBuffer] );
glBufferStorage( GL_ARRAY_BUFFER, sizeof(vertices), vertices, 0);
ShaderInfo shaders[] =
{
{ GL_VERTEX_SHADER, "media/shaders/triangles/triangles.vert" },
{ GL_FRAGMENT_SHADER, "media/shaders/triangles/triangles.frag" },
{ GL_NONE, NULL }
};
GLuint program = LoadShaders( shaders );
glUseProgram( program );
glVertexAttribPointer( vPosition, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0) ); //关联到顶点属性数组
glEnableVertexAttribArray( vPosition );
}
void display( void )
{
static const float black[] = { 0.0f, 0.0f, 0.0f, 0.0f };
glClearBufferfv(GL_COLOR, 0, black);
glBindVertexArray( VAOs[Triangles] ); //准备使用这个对象
glDrawArrays( GL_TRIANGLES, 0, NumVertices );
}
- OpenGL概述
- OpenGL 概述
- OpenGL概述
- OpenGL概述
- OpenGL概述
- OpenGL概述
- [OpenGL红宝书]第一章 OpenGL概述
- OpenGL系列1:OpenGL概述
- OpenGL ES概述
- OpenGL ES 概述
- android.opengl.GLSurfaceView概述
- android.opengl.GLSurfaceView概述
- android.opengl.GLSurfaceView 概述
- OpenGL ES 概述
- 【OpenGL】Shader概述
- OpenGL基本API概述
- 【OpenGL】Shader概述
- 【菜鸟也能玩转OpenGL】概述
- 域名的优化
- JPA的Embeddable注解
- 紫书搜索 习题7-10 UVA
- 解决小程序中Data.parse()获取时间戳IOS不兼容
- 组合数
- OpenGL概述
- 编译器的工作过程
- golang线程同步WaitGroup简介
- 射频识别技术漫谈(12)——三次相互认证
- webpack 浅析 --命令行安装编译
- 用C#和SQL实现课程信息管理系统(华工软院复试题练习)
- 解决公务车Bug:公安违章管理中编辑新增的公安违章记录,点击保存按钮报:数据库操作异常,null
- 题目1079:手机键盘答案
- 『mysql』mysql 练习题