
OpenGL
_luna
我年纪还轻,阅历不深的时候,我父亲教导过我一句话,我至今还念念不忘。 “每逢你想要批评任何人的时候, ”他对我说,“你就记住,这个世界上所有的人,并不是个个都有过你拥有的那些优越条件。”
展开
-
Modern OpenGL :光照shader
Modern OpenGL :光照shader1. 前言2. 数学背景3. 实现1. 前言 采用shader实现了标准? 冯氏光照模型。2. 数学背景老生长谈了。光照模型:冯氏光照模型(环境光+漫反射+镜面反射)光源类型:点光源环境光通常是一个常量ambient=Caambient= C_{a}ambient=Ca漫反射与面的法向量N和光线向量L有关diffuse=Cd...原创 2020-04-16 23:02:04 · 477 阅读 · 0 评论 -
OpenGL Blend混合
OpenGL Blend混合11绘制顺序就是:首先绘制所有不透明的物体。如果两个物体都是不透明的,则谁先谁后 都没有关系。然后,将深度缓冲区设置为只读。接下来,绘制所有半透明的物体。如果两个物体都是半透明的,则谁先谁后只需要根据自己的意愿(注意了,先绘制 的将成为“目标颜色”,后绘制的将成为“源颜色”,所以绘制的顺序将会对结果造成一些影响)。最后,将深度缓冲区设置为可读可写形式。...原创 2019-12-18 08:50:44 · 226 阅读 · 0 评论 -
OpenGL ES 3.0 纹理格式介绍及有效的内部格式、格式、类型组合
OpenGL ES 3.0 纹理格式介绍及有效的内部格式、格式、类型组合一、简介二、有效的 internalformat、format 和 type 组合1. 未确定大小的内部格式组合2. 确定大小的内部格式组合一、简介本文主要列举 OpenGL ES 3.0 中纹理格式有哪些,以及有效的内部格式、格式、类型组合。内容来自于 《OpenGL ES 3.0 编程指南 原书第2版》。纹理格式主要...转载 2019-10-23 16:56:15 · 1600 阅读 · 0 评论 -
OpenGL的Context(Profile)
OpenGL的Context(Profile)1. Context的种类2. OpenGL Core Profile Only2.1 FreeGLUT2.2 GLFW3. OpenGL扩展引入方式3.1 GLEW3.2 GLAD3.3 其他参考资料:OpenGL在渲染的时候需要一个Context,这个Context记录了OpenGL渲染需要的所有信息,可以把它理解成一个大的结构体,它里面记录了当...转载 2019-09-26 23:42:17 · 666 阅读 · 0 评论 -
glew工作原理
glew工作原理在C/C++程序中使用OpenGL时,需要使用glew/glad这样的第三方库来加载OpenGL函数。不像一般的第三方lib,通过头文件,直接就能够找到函数的指针地址。很多同学不明白为什么需要这么做。本文,就来分析一下。因为gl.h这个头文件在windows平台是最原始的版本,微软并不更新,一些最新的函数接口并不能暴露出来,不知为何,在Linux上同样不更新了,最新的OpenG...转载 2019-09-26 23:29:42 · 737 阅读 · 0 评论 -
OpenGL :glBindBuffer参数详解
OpenGL :glBindBuffer参数详解1.函数原型2. 参数解释2.1 target2.2 size2.3 data2.4 uasge1.函数原型void glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage); &nbs...原创 2019-09-18 00:08:21 · 9139 阅读 · 3 评论 -
OpenGL 视椎体剔除算法
视椎体剔除算法1. 前言2. 四叉/八叉树/六面体检测2.1 概述2.2 算法3. 球/圆锥检测3.1 概述3.2 算法1. 前言 时至今日,许多刚刚下海的3D引擎程序员仍不了解视锥剔除(Frustum Culling)的重要性和益处,这让我和我的小伙伴们感到很震♂惊.我在Flipcode...转载 2019-09-15 20:13:25 · 2903 阅读 · 1 评论 -
OpenGL Draw函数族以及渲染优化
OpenGL Draw函数族以及渲染优化前言1.最基本的Draw函数1.1 glDrawArrays1.2 glDrawElements2.基本Draw函数的变种2.1 *Instanced2.2 *BaseVertex2.3 *BaseInstance2.4 *BaseInstanceBaseVertex2.5 *Indirect2.6 小结3.多重Draw函数4.无绑定技术(bindless)...原创 2019-09-15 02:04:24 · 3885 阅读 · 0 评论 -
视锥剔除优化
视锥剔除优化基本相交测试. 只需要测试包围盒的两个角(这个几乎所有人都做了)平面连续测试. 根据上次测试的结果来优化用于测试的平面顺序八分体测试. 对于对称的视锥体可以减少一半的测试父子测试. 对于有父子关系的包围盒, 父在内则子在内, 父在外则子在外, 父相交则需要递归测试(四叉/八叉之类的肯定也做过了)变换连续测试. 根据移动和旋转的方向来优化测试. 如上一帧在外...转载 2019-08-25 00:11:13 · 986 阅读 · 0 评论 -
OpenGL图形渲染管线、VBO、VAO、EBO概念及用例
OpenGL图形渲染管线、VBO、VAO、EBO概念及用例图形渲染管线顶点缓冲对象(Vertex Buffer Objects,VBO)顶点数组对象(Vertex Arrary Object,VAO)索引缓冲对象(Element Buffer Object,EBO)本文转自:https://blog.youkuaiyun.com/dcrmg/article/details/53556664图形渲染管线...转载 2019-03-13 14:00:49 · 401 阅读 · 0 评论 -
OpenGL 加载透明纹理
OpenGL 加载透明纹理一、编译LPNG,ZLIB二、读取PNG三、添加纹理对象一、编译LPNG,ZLIB依然是以前的老一套,在此不作过多赘述将编译好的加到工程中二、读取PNGLPNG有示例,我直接拿来用了imagenamespace image{ class png { public: png(); ~png(); long load(const ::s...原创 2019-03-15 12:21:01 · 3963 阅读 · 1 评论 -
OpenGL VAO+VBO+EBO+GLSL练习
OpenGL VAO,BVO,EBO + shader练习一、VAO,VBO,EBO之间的关系一、VAO,VBO,EBO之间的关系废话不多说,直接上图也就是说:每个个VAO管理着数个VBO,同时可以拥有一个EBO(EBO,索引数据,可以没有,此时直接用顶点数据绘制)每个VBO用来存放数组数据,这个数据可以由你自己定义顺序在绑定了VAO之后,后面绑定的VBO和EBO归属到这...原创 2019-03-14 17:24:14 · 716 阅读 · 0 评论 -
OpenGL显示列表
OpenGL显示列表OpenGL显示列表16.1、显示列表概论16.1.1 显示列表的优势16.1.2 显示列表的适用场合16.2、创建和执行显示列表16.2.1 创建显示列表16.2.2 执行显示列表16.3、管理显示列表16.4、多级显示列表本文转自:https://www.cnblogs.com/yxnchinahlj/archive/2010/11/19/1881426.html...原创 2019-02-20 16:21:23 · 1881 阅读 · 0 评论 -
OpenGL光照
OpenGL光照模型基本光照模型1.放射光2.环境光3.漫反射光4.镜面反射光光源类型1.平行光2.点光源3.聚光灯代码基本光照模型OpenGL中有四种光照模型放射光(自发光) emissiveemissiveemissive环境光 ambientambientambient漫反射光 ...原创 2019-02-28 00:38:13 · 7445 阅读 · 0 评论 -
OpenGL绘制球体
OpenGL绘制球体于(0,0,0) 绘制一个半径R=1 的球体函数:sphere_entryvoid sphere_entry(int du, int dv){ float gu = 3.1415926535 / du , gv = 2.0*3.1415926535 / (dv-1); float x, y, z ,r ; glPushMatrix();#define MA...原创 2019-02-27 20:46:11 · 11051 阅读 · 0 评论 -
OSG VS2017 环境配置
OSG(1): VS 2017 环境配置文件准备CMAKEvs 2017 编译VS工程属性设置文件准备我的IDE是VS2017OSG稳定版本http://www.openscenegraph.org/index.php/download-section/stable-releasesOSG官方数据http://www.openscenegraph.org/index.php/down...原创 2019-01-17 13:40:36 · 3134 阅读 · 4 评论 -
OpenGL环境配置
OpenGL(1):环境配置前言1、glew2、freeglut3、gltools项目属性设置我的第一个OpenGL程序前言VS2015 的OpenGL 环境搭配1、glew地址:https://sourceforge.net/projects/glew/(1) …\include\ 下全部文件移动到 你的VS目录\VC\include(2) …\lib\Release\x64 下全...原创 2019-01-06 00:28:24 · 734 阅读 · 6 评论