自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

翻译 OpenGL教程翻译 第二十六课 法线纹理

第二十六课 法线纹理背景我们之前使用的光照技术还算不错,光线在模型表面得到了很好的插值,为场景营造出真实感。但是这种效果还能够有非常大的提升。事实上,我们以前使用的这种插值方式在某种程度上来说是对效果提升的一个障碍,特别是当纹理代表的是凹凸不平的平面的时候,这使得模型看起来就太平滑了。例如下面这两幅图片: 左边的图片比右边的图片看起来要好多了,它将石头表面的凹凸不平的感觉很好的表现了出来,而右边的

2015-11-21 10:27:19 1222

翻译 OpenGL教程翻译 第二十五课 天空盒

第二十五课 天空盒背景天空盒是用于增强场景表现力的一个常用技术,它一般通过在相机周围包裹一个纹理来实现。这个纹理通常是一些天空、山川或者摩天大楼等等,下面是游戏 Half-Life 中使用天空盒的例子:天空盒的思想就是绘制一个大的立方体,然后将观察者放在立方体的中心,当相机移动时,这个立方体也跟着相机一起移动,这样相机就永远不会运动到场景的边缘。这与我们真实世界中的情况一样的,我们可以看见远处的天空

2015-11-21 10:21:30 2622

翻译 OpenGL教程翻译 第二十四课 阴影贴图(二)

第二十四课 阴影贴图(二)原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景在前面一节中我们学习了 shadow mapping 的基本原理,并且介绍了如何将深度信息渲染到一张纹理上面并最终通过从深度缓存中进行采样而将其渲染到屏幕上面。在这一节中我们将会介绍如何使用这个功能来创建真正的阴影。 我们知道 shadow mapping 是一个二次渲染技术,在

2015-10-01 22:03:23 878

翻译 OpenGL教程翻译 第二十三课 阴影贴图(一)

第二十三课 阴影贴图(一)原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景阴影和光是紧密联系在一起的,因为如果你想要产生一个阴影就必须要光。有许多的技术可以生成阴影,在接下来的两个章节中我们将学习其中的一种比较基础简单的技术-阴影贴图。当光栅化的时候,你会问这个像素是否位于阴影中?让我们换个问法,从光源到像素的路径是否中间经过其他物体?如果是,这个像素可

2015-10-01 22:01:33 1187

翻译 OpenGL教程翻译 第二十二课 使用Assimp加载模型

第二十二课 使用Assimp加载模型原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景到现在为止我们都在使用手动生成的模型。正如你所想的,指明每个顶点的位置和其他属性有点时候并不是十分方便。对于一个箱子、锥体和简单平面还好,但是像人们的脸怎么办?现实的商业应用和游戏中,程序中使用模型一般都是由美术人员通过如 Blender, Maya 或 3ds Max

2015-09-30 14:45:21 4613

翻译 OpenGL教程翻译 第二十一课 聚光灯

第二十一课 聚光灯原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景聚光灯是第三个也是最后一个我们将要介绍的光源类型(至少在一段时间内)。他比平行光和点光源更加复杂,而本质上还是用到这二者的很多内容。我们需要设置聚光灯光源的位置,并且其光照强度随着和目标物距离的增加而减小(像点光源那样),而且他也要指向一个特定的方向(像平行光那样)。但是聚光灯新增了一个特

2015-09-30 14:35:07 2028

翻译 OpenGL教程翻译 第二十课 点光源

第二十课 点光源原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景知识基于平行光,我们已经学习了三种基本光照模型(环境光、漫反射光和高光)。平行光是一种只有单一方向并且没有起点的灯光类型。因此,它不会随着距离增大而减弱(事实上,你甚至不能定义它与目标的距离)。我们来定义一下点光源,点光源有起点和衰减效果,并且当物体远离点光源时这种衰减效果变得更为明显。灯泡

2015-09-29 11:34:21 1245

翻译 OpenGL教程翻译 第十九课 镜面高光

第十九课 镜面高光原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载) 背景当我们在计算环境光照的时候,唯一的要考虑的因素是光照强度;之后当我们计算到漫反射光照的时候,我们将光照的方向因素考虑进去了。镜面反射光包含这些因素,并且增加一个新的因素——观察者位置。这样做的原因是当光线以某一角度照射到一个平面上时,他会以相同的角度反射出去(在法线的另一边)。如果观察

2015-09-29 11:31:07 3119

翻译 OpenGL教程翻译 第十八课 漫反射光

第十八课 漫反射光背景环境光和漫反射光的主要不同是,漫反射光的计算需要依靠光线方向而环境光完全忽略了它!当只有环境光时整个场景被均等照亮,漫反射光会使物体面对光的部分比背对光的部分更加明亮。此外漫反射光还增加了一些新的计算,光线的入射角决定了表面的亮度。通过下面的图片来演示这个概念:让我们假设两条光线的强度是一样的,而唯一不一样的是它们入射的方向。在漫反射光照模型中,左边物体的表面比右边亮,因为左边

2015-09-17 12:44:08 1811

翻译 OpenGL教程翻译 第十七课 环境光(Ambient Lighting)

第十七课 环境光(Ambient Lighting)背景光照是 3D 图形学的最重要的研究领域之一。对光照得体的模拟会使渲染的场景增加很多视觉吸引力。之所以使用“模拟”这个词是因为你无法完全准确的计算出光在自然界中的表现。真正的光是由大量的称为“光子”的粒子组成的,并且同时表现出波和粒子的特性(光的“波粒二象性”)。如果你在程序中试图序计算每一个光子的作用,那么你将很快用光电脑的计算力。因此,这些年

2015-09-17 12:37:55 1616

翻译 OpenGL教程翻译 第十六课 基本的纹理贴图

第十六课 基本的纹理贴图背景纹理贴图就是将任意一种类型的图片应用到 3D 模型的一个或多个面上。图片(也可以称之为纹理)内容可以是任何东西,但是他们一般都是一些比如砖,叶子,地面等的图案,纹理贴图增加了场景的真实性。例如,对比下面的两幅图片。 为了实现纹理贴图,你需要进行三个步骤:将图片加载到 OpenGL 中;定义模型顶点的纹理坐标(以对其进行贴图);用纹理坐标对图片进行采样操作进而得到像素颜色

2015-09-17 12:34:34 2123

翻译 OpenGL教程翻译 第十五课 相机控制(二)

第十五课 相机控制(二)原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景在这一节中我们将使用鼠标来控制相机的方向,从而得我们的相机控制更加完善。相机根据其使用的场景不同而有不同的自由度。在本教程中我们将要实现的是与第一人称游戏中相似的相机控制(如枪战类游戏)。这意味着我们将可以使相机完成 360 度的旋转(绕着 Y 轴),这与我们的头部向左转向右转、身体

2015-09-07 19:50:40 953

翻译 OpenGL教程翻译 第十四课 相机控制(一)

第十四课 相机控制(一)原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景在之前的教程中我们学习了如果当相机不位于初始位置时,如何使得得场景中的物体正确的投影到屏幕上面,那么我们下一步就应该学着去控制这个相机,使得相机可以在场景中自由移动。我们可以用鼠标和键盘控制相机——鼠标控制视口方向,键盘控制相机的位置。这些都和第一人称视角相似,这一节我们主要来学习鼠

2015-09-07 19:45:47 1192

翻译 OpenGL教程翻译 第十二课 透视投影

第十二课 透视投影原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景在这一节中我们将会介绍如何在保持深度外观的情况下将三维世界中的物体投影到二维平面上去。最有代表性的例子是:当我们站在一条笔直的马路的中间向前看时,我们会发现马路的两边会越来越靠近,并最终汇聚成一个点。这就是图形学中常说的透视投影。为了实现上面的效果,在本节中我们需要生成一个投影矩阵,这个投

2015-09-07 16:05:18 3013

翻译 OpenGL教程翻译 第十三课 相机空间

OpenGL教程翻译 第十三课 相机空间原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background在上几节中我们看见两种类型的顶点变换。第一种类型的变换是改变对象的位置(平移),旋转,尺寸(放缩)。这些变换允许我们在3D世界中把一个对象放在任何位置。第二种类型的变换是透视投影变换,把在3D世界坐标系下的顶点位置投影

2015-07-26 22:22:27 1700

翻译 OpenGL教程翻译 第十一课 Concatenating Transformations

OpenGL教程翻译 第十一课 Concatenating Transformations原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background在前几章中我们学习了一些变换,通过它们我们能将3D世界中的物体灵活的移动到任何位置。之后我们还要学习两个变换(相机控制和透视投影),但是正如你可能已经猜到的,我们需要一个变换的

2015-07-26 21:34:29 924

翻译 OpenGL教程翻译 第九课 插值

OpenGL教程翻译 第九课 插值原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background本章讲述三维渲染管线中的一个非常重要的部分——插值,它是光栅器对从顶点着色器输出的变量所做的操作。正如你已经看到的,为了在屏幕上得到一些有意义的东西,你需要指定VS输出变量中的一个为“gl_Position”。这是一个四维向

2015-07-26 21:33:07 1227

翻译 OpenGL教程翻译 第十课 索引绘制

OpenGL教程翻译 第十课 索引绘制原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)BackgroundOpenGL提供了几个绘制函数。我们目前使用的glDrawArrays()函数属于“顺序绘制”的类别。这意味着顶点缓冲区以指定的偏移量进行扫描每X(1个顶点时表示点,两个顶点表示线,等等)个顶点作为一个图元。这使用起来很方便

2015-07-26 21:32:29 908 1

翻译 OpenGL教程翻译 第七课 旋转变换

OpenGL教程翻译 第七课 旋转变换原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background     接下来的变换是旋转,就是说给定一个角度和点,我们将点绕着一个坐标轴旋转。我们总是变化x,y,z三个里面的两个,而不让第三部分变化。这意味着,旋转路径总在三个坐标轴平面中的一个之中:绕Z轴的是xy面、绕X轴的是yz面

2015-07-26 21:31:07 780

翻译 OpenGL教程翻译 第八课 缩放变换

OpenGL教程翻译 第八课 缩放变换原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background  缩放矩阵也很简单!它的作用是增大或缩小物体的尺寸!你可能想做这些处理,例如,当你想用同一模型产生一些差异(大树和小树本质上是一样的),亦或你想将物体的尺寸与其现实世界的尺寸联系起来!对于上面的例子,你可能想使点的三个坐标

2015-07-26 21:30:26 791

翻译 OpenGL教程翻译 第六课 平移变换

OpenGL教程翻译 第六课 平移变换原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background                                                  这一教程我们来看一看如何在三维场景中对物体进行各式各样的变换,并且在保持场景的立体感的情况下将其渲染到屏幕上

2015-07-26 21:21:08 1548

翻译 第五课 一致变量

第五课 一致变量原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background在本教程中我们将接触到一个新的着色器变量类型——一致变量。属性变量与一致变量之间的区别:属性变量包含顶点特性数据所以每次调用shader都会从顶点缓冲区中重新导入新的数据,而一致变量中的值在整个绘制过程中都保持不变。这意味着我们在

2015-07-26 21:19:08 927

翻译 OpenGL教程翻译 第四课 Shaders

OpenGL教程翻译  第四课 Shaders原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background从这一节开始,我们要加入的所有效果都会使用shaders来实现,Shaders是进行三维图形学编程的先进方法,从某种意义上来说shader的出现是图形学中的一种”退步”,因为在这之前所有的功能都直接由

2015-07-26 21:11:49 1215

翻译 OpenGL教程翻译 第三课 First Triangle

OpenGL教程翻译  第三课 First Triangle原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background这一节是非常短的。我们简单的扩展上一节的内容来画一个三角形。在这一节中我们再一次在规范化空间中安排我们的顶点坐标。能够看见的顶点一定要在盒子内部,这样视口矩阵才能将这些顶点映

2015-07-26 21:11:12 673

翻译 OpenGL教程翻译 第二课 Hello Dot!

OpenGL教程翻译  第二课 Hello Dot!原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background这将是我们第一次遇到GLEW,GLEW是OpenGL的扩展功能库。它能帮助你解决OpenGL不断扩展的问题。一旦你初始化它之后,它在你的系统上将查询所有可用的扩展功能,自动的加载它们并且通过一个

2015-07-26 21:09:28 1118

翻译 OpenGL教程翻译 第一课 Create a window

OpenGL教程翻译 第一课 Create a window原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)BackgroundOpengl标准没有指定任何API为了建立和使用窗口。在x系统中提供opengl的接口为GLX。Windows提供WGL而MacOS提供CGL。为了建立一个能够显示图像的窗口,我

2015-07-26 21:01:35 1134

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除