OpenGL
文章平均质量分 84
yaotouge
这个作者很懒,什么都没留下…
展开
-
如何在OS X El Captain中配置GLFW和GLEW
mac下使用c++编写OpenGL程序,配置环境时却卡了好久(本来想用oc来着,结果网上找了几天,发现所有的cocoa教程都是ios的,mac os x的少得可怜,仅有的也都是xcode4甚至更早的,基本不能用……真的很想吐槽一下,苹果官方就不能搞个最新版本的教程么,连官方的文档都是好久之前的。果然开发os x程序的人太少了么)。网上资料零零碎碎,花费数小时才搞定,在这里总结一下: 下载原创 2016-06-12 21:31:03 · 793 阅读 · 0 评论 -
OpenGL中RBO与Texture,UBO与SSBO的异同
UBO(Uniform Buffer Object)可用于在多个shader program之间共享uniform变量,批量管理。与之类似的有SSBO(Shader Storage Buffer Object),该对象也可用于不同shader之间共享数据以及缓存数据。二者功能上很相似。主要有如下区别: 大小限制:UBO大小限制为KB级别,64KB或128KB,具体与硬件相关。而SSBO则原创 2016-06-12 21:21:09 · 9492 阅读 · 1 评论 -
OpenGL中EXT,ARB扩展的关系
由于OpenGL的标准更新不是很频繁,因此,当某种技术应用流行起来时,显卡厂商为了支持该技术,会使用自己的扩展来实现该功能。但是不同厂商如果有不同的实现,那么程序编写将会异常繁琐。因此多个厂商共同协商使用一致的扩展,这就是EXT扩展。如果这个扩展不仅多厂商协商,而且得到OpenGL体系结构审核委员会(即ARB)的确认,那么该扩展便成为ARB扩展。最后如果标准制定者认为该功能有必要添加到新版原创 2016-06-12 21:20:31 · 2833 阅读 · 0 评论 -
【体绘制】raymarching算法
最近研究云的渲染接触到了体绘制,在shadertoy上看了一些例子,不过它们都是全场景体绘制的,场景中的所有物体,地形均由数学方法生成。然后用一个quad覆盖整个屏幕,对每个片段进行raymarching,甚至是raytracing。好像有一个64kb的比赛,就是用最小的程序大小,看谁能够渲染出最漂亮的图像,令人不得不感叹数学的神奇。原创 2016-06-17 12:15:00 · 10360 阅读 · 5 评论 -
伽马校正(gamma correction)学习笔记
学习HDR和Bloom特效的过程中,接触到了伽马矫正的问题。查阅了不少资料,这一篇讲的最清楚,下面的图片也是来自该文章。这应该说是一个历史遗留问题,以前的CRT显示器是使用电子显像管,通过控制电流大小来控制显示屏幕上的亮度。然而亮度和电流之间的关系并非是线性的,也就是说电流强度变为2倍,显示的亮度并非是两倍,而是由公式1决定:Vout=(Vin)gammaV_{out} = {(V_{in})}^{原创 2016-06-12 23:03:06 · 21768 阅读 · 6 评论 -
视差贴图(parallax mapping)学习笔记
视差贴图是一种很神奇的技术,它的效果有点类似法线贴图,都是通过尽可能少的面片加上特殊的技术来模拟复杂几何体的视觉效果。通常视差贴图都会和法线贴图结合起来使用。视差贴图的核心思想,就是通过贴图时uv坐标的偏移,来形成视觉上的几何体高低视差,给人以立体的感觉。这篇教程很详细,下面的图片也是来自于该教程(捂脸):如图所示,高度为0.0的平面是渲染时的实际面片,棕色的线则代表了原始几何体的实际高度。这里我们原创 2016-06-12 22:32:49 · 8581 阅读 · 2 评论 -
glTexImage2D 中 format internalformat type 参数的含义
在OpenGL中初始化一个纹理时,glTexImage2D()函数中指定纹理格式数据有三个参数:format,internalformat,typeinternalformat是指OpenGL内部存储这个纹理时所用的格式,包括多少个分量(1,2,3)以及每个分量的格式(16F,32F...),合法的包括GL_RGB, GL_RGB32F, GL_COMPRESSED_RGB。格式形如GL_原创 2016-06-12 21:19:44 · 4048 阅读 · 0 评论