OPENGL——背面剔除】的更多相关文章

Opengl 表面剔除是提高 Opengl 程序渲染效率的一个有效途径. 我们知道,OpenGL 渲染的基本单位是一个个的三角形面片.无论多么复杂的3D 模 型都是由一个个基本的三角型的面片组成的. 既然是一个面片,那必然就有两个面,如果其中有一个面被称为正面,那相应的另一 面就被称为背面.同一时刻我们在看见某一面的同时,另外一面则必然是看不的. 在这里我们可以想象一个封闭的不透明的几何体,我们肉眼只能看到它的外面,而 它的内部我们是看不见的.但如果是从 OpenGL的角度来看,如果没有开启表面…
在OpenGL种可使用glEnable(GL_CULL_FACE)开启背面剔除功能,即把那些我们看不见的面删除.但在剔除之前我们需要定义正面和背面,这个可以用法线来理解.在数学学科中,法线是用右手法则定义的,如图 右手法则:首先右手手指全部张开,使右手除拇指之外的四指从起始向量向终止向量握住,大拇指的方向即为法线方向. OpenGL中默认是右手法则,即点的顺序为逆时针方向时,这个面为正面.但同时OpenGL也提供了API改变默认的设定. glFrontFace可改变正面判断原则,默认时GL_CC…
写在前面 在绘制封闭类型的几何对象时,开启背面剔除功能能够提高渲染性能.本节简要介绍下背面剔除,示例程序可以在我的github下载. 什么是背面剔除 当我们观察场景中对象时,一般只能以一定角度来观察,那么对象的某些面我们是看不到的,例如你观察一个立方体,最多只能同时看到3个面,有时只能看到1个面,而我们绘制时如果不采取剔除背面的措施,则要绘制6个面,其中包括一些,我们根本看不到的面.对于立方体这个面较少的几何对象,性能开销不明显,但是对于复杂的模型,开启背面剔除则能明显改善渲染性能. 背面剔除,…
在这一章,我们会学习什么是着色器(Shader),什么是着色器语言(OpenGL Shading Language-GLSL),以及着色器怎么和OpenGL程序交互. 首先我们先来看看什么叫着色器. Shader(着色器)是用来实现图像渲染的,用来替代固定渲染管线的可编程程序. 着色器替代了传统的固定渲染管线,可以实现3D图形学计算中的相关计算,由于其可编程性,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制.这极大的提高了图像的画质. 在上一篇文章( http://www.cnblog…
本文转载自 http://blog.csdn.net/racehorse/article/details/6593719 GLSL教程 这是一些列来自lighthouse3d的GLSL教程,非常适合入门.我将边学习边翻译该教程的内容,同时记录在这里,方便以后查询. 流水线概述 下图描述了一个简化的图形处理流水线,虽然简略但仍然可以展示着色器编程(shader programming)的一些重要概念. 一个固定流水线包括如下功能: 顶点变换(Vertex Transformation) 这里一个顶…
客户端-服务器 客户端是存储在CPU存储器中的,并且在应用程序中执行(或者驱动程序),驱动程序将渲染命令和数据组合起来,发动到服务器执行.服务器和客户机在功能上是异步的,他们是各自独立的软件模块或者硬件模块. OpenGL渲染管线 数据先传给顶点着色器,然后是片段着色器,几何着色器(可选择)出现在两者之间 顶点着色器(Vertex Shader) 片段着色器(Fragment Shader) 片段(fragment)不是最后的像素数据,但和像素对应片段(fragment)需要经过处理,blend…
5.第五课:带纹理的立方体.html(http://www.opengl-tutorial.org/cn/beginners-tutorials/tutorial-5-a-textured-cube/) ZC:blender 获得纹理的 UV坐标(每个顶点除了位置坐标外还有两个浮点数坐标:U和V) ZC:U是水平的 V是竖直的 ZC:The Compressonator(ATI工具) "压缩成DXT1.DXT3或DXT5格式","生成mipmap","导出…
1. 2. In Tutorial 15 we learnt how to create lightmaps, which encompasses(包含) static lighting. While it produces very nice shadows, it doesn’t deal with animated(动画) models. Shadow maps are the current (as of 2016) way to make dynamic shadows. The gr…
3.1 基础图形管线 三种向OpenGl着色器传递渲染数据的方法:属性,Uniform和纹理.3.2 创建坐标系 3.2.1 正投影 GLFrustum::SetOrthographic(⋯⋯): 3.2.2 透视投影 GLFrustum::SetPerspective(float fFov, float fAspect, float fNear, float fFar);3.3 使用存储着色器 GLShaderManager 在使用前必须进行初始化 shaderManager.Initiali…
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解>电子工业出版社等. CSDN视频网址:http://edu.csdn.net/lecturer/144 在上一个博客中介绍了Shadow Mapping技术,但是正如你所看到的哦,Shadow Mapping还是有点不真实,本片博客开始介绍如何改进Shadow Mapping技术.在上篇博客中渲染的阴…
英文原文 中文译文 1. 计算机图像硬件 1.1 GPU(图像处理单元) 如今,计算机拥有用来专门做图像处理显示的GPU模块,拥有独立的图像处理储存(显存). 1.2 像素和画面 任何图像显示都是基于栅格的格式.一个栅格既是一张二维的像素直角坐标网.像素具有两个属性:颜色和位置.颜色通常使用RGB(红绿蓝)来表示,典 型的有用8位或者24位二进制位(真彩色)表示一种颜色.位置则用坐标(x,y)表示.原点(0,0)位于左上角,x轴指向右,y轴指向下.这与我们平常 熟知的2D笛卡尔坐标不同,它的y轴…
    本节将演示在3D空间中绘制图形的几个简单实例:     (1)在3D空间内绘制圆锥体: #include <GL/glut.h> #include <math.h> #pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"") #define PI 3.1416 GLfloat xRot = ; GLfloat yRot = ;…
OpenGL快问快答 本文内容主要来自对(http://www.opengl.org/wiki/FAQ)的翻译,随机加入了本人的观点.与原文相比,章节未必完整,含义未必雷同,顺序未必一致.仅供参考. +BIT祝威+悄悄在此留下版了个权的信息说: 名词术语 渲染:等于"画",等于"draw". OpenGL是什么? OpenGL是Open Graphics Library(开源图形库)的缩写.它是一本说明书,是一个PDF文件.它写的是渲染三维图形所使用的API(App…
最近2D转向3D,也从固定管线转到了可编程管线,有些细节的东西记录一下. Geometry Shader Geometry Shader从Vertex Shader中获取数据,向Fragment Shader输出数据. Geometry Shader的布局限定符: layout (a1) in; layout (a2,max_vertices = ) out; a1表示输入图元类型,可以使lines.triangles等值,这个值的所有取值可以查表,此值需要和API中Drawcall的传入的绘制…
http://www.opengpu.org/forum.php?mod=viewthread&tid=965&extra=page%3D1 游戏引擎剖析(Game Engine Anatomy 101) 原文作者:Jake Simpson 译者: 向海 Email:GameWorldChina@myway.com 英文原版下载 :   <ignore_js_op> Game Engine Anatomy.pdf (711.1 KB, 下载次数: 274) 第1部分: 游戏引擎…
Shader "name" { [Properties] Subshaders [Fallback] } 定义了一个着色器.着色器拥有一个 Properties 的列表.着色器包含一个子着色器的列表(SubShaders).并且至少包含一个(SubShader).当加载一个着色器时,Unity 将遍历这个列表,获取第一个能被用户机器支持的着色器.如果没有子着色器被支持,Unity 将尝试使用降级 Shader(Fallback ). 一.着色器文件中的 Properties 块定义了这…
Surface Normal Averaging eryar@163.com 摘要Abstract:正确设置网格面上点的法向,对几何体在光照等情况下显示得更真实,这样就可以减少顶点数量,提高渲染速度.本文通过将OpenCascade中的形状离散成网格数据后在OpenSceneGraph中显示,及使用OSG的快速法向osgUtil::SmoothingVisitor优化与使用OpenCascade来计算正确的法向的结果的对比,说明面法向量的重要性. 关键字Key Words:OpenCascade…
Surface Normal Vector in OpenCascade eryar@163.com 摘要Abstract:表面上某一点的法向量(Normal Vector)指的是在该点处与表面垂直的方向.对于平面,其上各点的法向是一样的,统一为这个平面的法向.对于曲面,各点具有不同的法向量.几何对象的法向量定义了它在空间中的方向,法向量是在进行光照处理时的重要参数.所以在显示造型算法离散曲面后的网格时,设置正确的法向量对场景的光照.光线追踪效果有直接影响.本文结合OpenCascade中代码,…
图形渲染管道被认为是实时图形渲染的核心,简称为管道.管道的主要功能是由给定的虚拟摄像机.三维物体.灯源.光照模型.纹理贴图或其他来产生或渲染一个二维图像.由此可见,渲染管线是实时渲染技术的底层工具.图像中物体的位置及形状是通过它们的几何描述.环境特征.以及该环境中虚拟摄像机的摆放位置来决定的.物体的外观受到了材质属性.灯源.贴图以及渲染模式(sharding modles)的影响. 很多计算机图形学的书籍都把渲染管线分为三个阶段:应用程序阶段.几何阶段.光栅化阶段. 1.  应用程序阶段(CPU…