glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);format和type取值如下/* PixelCopyType */#define G...
分类:
其他好文 时间:
2015-12-15 18:20:44
阅读次数:
231
剔除和深度测试是渲染法线中的一个流程Cull:默认情况下,Unity中给的所有Shader都是单面的,它都把反面的渲染给关闭掉了,如果你在开发的过程中需要使用到双面,只要把cull关闭(off)即可!ZWrite:深度缓存ZWrite默认情况下都是开启的,因为我们3D场景中的模型非常多,那么模型与模...
分类:
其他好文 时间:
2015-09-12 23:28:44
阅读次数:
756
今天来学习一下深度测试,不过这个东东貌似暂时就是了解一下原理啦,因为DX默认是打开深度测试的,即我们不需要额外进行设置就可以使用深度测试的功能,不过这个还是有必要了解一下,一是对DX的流程更加了解,二是我们可以手动设置深度测试的参数以及函数,达到一些自己想要实现的效果。
一.简介
三维的世界中,有各种物体,而这些物体难免会有遮挡,而且同一个物体不同部分也会有遮挡的关系,要想表现出来更加...
分类:
其他好文 时间:
2015-08-06 02:04:08
阅读次数:
149
在说深度缓存前先来了解一下什么是深度?
深度,在日常生活中,这个词可以用来形容比如说一口井有多少深,即是一个距离,在OpenGL中也是一样的,不过它是用z坐标来描述的。一般地,z轴的坐标原点在屏幕上,屏幕里为负轴,向外为正轴。我们通过眼睛可以看井的里面,那么在OpenGL中眼睛描述为摄像机。一般地,摄像机的初始位置在OpenGL窗口的正中心。
说了什么是深度,接下来就来说一下什么是深度缓存(区...
分类:
其他好文 时间:
2015-05-26 09:24:16
阅读次数:
428
刚开始学习OpenGL,感觉这个挺有趣的(在绘制三维模型时,空间想象能力要求比较高,不然很头疼的)。
新东西,新心情。。。来一发红色三角形。
我就是要通过OpenGL来绘制一个红色的三角形。现在我们来看一下代码:
#include
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深...
分类:
其他好文 时间:
2015-05-20 22:25:43
阅读次数:
173
函数:glClearDepth()
说到这个先来说一下深度缓存:在生活中一个物体(实心的)很有可能会挡住另一个物体,那么opengl应该对这个怎么办呢。那么就引入了这个深度缓存的概念,目的就是把挡住的部分去掉。接下来就可以介绍这个函数了。
这个函数的目的就是为了给深度缓存一个值。
那么到底是显示前面的物体还是被挡住的物体呢,我们要使用另一个函数glDepthFunc()。
GL_NEV...
分类:
其他好文 时间:
2015-05-19 22:45:09
阅读次数:
112
齐次裁剪空间坐标系(范围 -1<=x <=1,-1<=y<=1,-1<=z <=1, )是左手坐标系,为什么? 其实也很好理解,如上图 , A和B点经过投影变换后其x坐标是一样的(不再是投影平截体中的那种相对关系), 而近裁剪面上的点的z坐标经过投影变换后变为-1 , 而远裁剪面上的z坐标为1 ,所以齐次裁剪空间坐标系的z轴的正方向正好和相机坐标系中的z轴正方向是相反的。...
分类:
其他好文 时间:
2015-05-14 16:34:45
阅读次数:
498
最近在shadow map过程中卡住了。因为我想在OpenGLES 2.0兼容的平台上运行shadow map,而要顺利运行shadow map,通常的情况是拥有GL_OES_depth_texture扩展,而有些兼容的机器是没有这个扩展,这给我们开发人员带来了一些难度。不过办法还是有的,前提是要对计算机图形学的Z-Buffer要有一个深入的了解才行。...
分类:
其他好文 时间:
2015-04-08 15:06:29
阅读次数:
218
目前Cocos Studio的UI控件中包含ScrollView、PageView、ListView三种滚动层,但是经常会遇到开发者们抱怨在游戏中会显示说有的内容,而不会将超出区域裁剪掉。? 原因是未开启OpenGL深度缓存?? 这个问题在ios会...
分类:
其他好文 时间:
2014-10-20 21:30:44
阅读次数:
330
你的第一个多边形:在第一个教程的基础上,我们添加了一个三角形和一个四边形。也许你认为这很简单,但你已经迈出了一大步,要知道任何在OpenGL中绘制的模型都会被分解为这两种简单的图形。读完了这一课,你会学到如何在空间放置模型,并且会知道深度缓存的概念。第一课中,我教您如何创建一个OpenGL窗口。这一...
分类:
其他好文 时间:
2014-10-05 09:33:28
阅读次数:
183