ogl翻译
文章平均质量分 76
Vcube
这个作者很懒,什么都没留下…
展开
-
OpenGL教程翻译 第二十五课 天空盒
第二十五课 天空盒背景天空盒是用于增强场景表现力的一个常用技术,它一般通过在相机周围包裹一个纹理来实现。这个纹理通常是一些天空、山川或者摩天大楼等等,下面是游戏 Half-Life 中使用天空盒的例子:天空盒的思想就是绘制一个大的立方体,然后将观察者放在立方体的中心,当相机移动时,这个立方体也跟着相机一起移动,这样相机就永远不会运动到场景的边缘。这与我们真实世界中的情况一样的,我们可以看见远处的天空翻译 2015-11-21 10:21:30 · 2703 阅读 · 0 评论 -
OpenGL教程翻译 第十五课 相机控制(二)
第十五课 相机控制(二)原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景在这一节中我们将使用鼠标来控制相机的方向,从而得我们的相机控制更加完善。相机根据其使用的场景不同而有不同的自由度。在本教程中我们将要实现的是与第一人称游戏中相似的相机控制(如枪战类游戏)。这意味着我们将可以使相机完成 360 度的旋转(绕着 Y 轴),这与我们的头部向左转向右转、身体翻译 2015-09-07 19:50:40 · 1014 阅读 · 0 评论 -
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 · 1171 阅读 · 0 评论 -
OpenGL教程翻译 第十三课 相机空间
OpenGL教程翻译 第十三课 相机空间原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background在上几节中我们看见两种类型的顶点变换。第一种类型的变换是改变对象的位置(平移),旋转,尺寸(放缩)。这些变换允许我们在3D世界中把一个对象放在任何位置。第二种类型的变换是透视投影变换,把在3D世界坐标系下的顶点位置投影翻译 2015-07-26 22:22:27 · 1796 阅读 · 0 评论 -
OpenGL教程翻译 第九课 插值
OpenGL教程翻译 第九课 插值原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background本章讲述三维渲染管线中的一个非常重要的部分——插值,它是光栅器对从顶点着色器输出的变量所做的操作。正如你已经看到的,为了在屏幕上得到一些有意义的东西,你需要指定VS输出变量中的一个为“gl_Position”。这是一个四维向翻译 2015-07-26 21:33:07 · 1278 阅读 · 0 评论 -
OpenGL教程翻译 第七课 旋转变换
OpenGL教程翻译 第七课 旋转变换原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background 接下来的变换是旋转,就是说给定一个角度和点,我们将点绕着一个坐标轴旋转。我们总是变化x,y,z三个里面的两个,而不让第三部分变化。这意味着,旋转路径总在三个坐标轴平面中的一个之中:绕Z轴的是xy面、绕X轴的是yz面翻译 2015-07-26 21:31:07 · 812 阅读 · 0 评论 -
OpenGL教程翻译 第四课 Shaders
OpenGL教程翻译 第四课 Shaders原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background从这一节开始,我们要加入的所有效果都会使用shaders来实现,Shaders是进行三维图形学编程的先进方法,从某种意义上来说shader的出现是图形学中的一种”退步”,因为在这之前所有的功能都直接由翻译 2015-07-26 21:11:49 · 1265 阅读 · 0 评论 -
OpenGL教程翻译 第二课 Hello Dot!
OpenGL教程翻译 第二课 Hello Dot!原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background这将是我们第一次遇到GLEW,GLEW是OpenGL的扩展功能库。它能帮助你解决OpenGL不断扩展的问题。一旦你初始化它之后,它在你的系统上将查询所有可用的扩展功能,自动的加载它们并且通过一个翻译 2015-07-26 21:09:28 · 1174 阅读 · 0 评论 -
OpenGL教程翻译 第八课 缩放变换
OpenGL教程翻译 第八课 缩放变换原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background 缩放矩阵也很简单!它的作用是增大或缩小物体的尺寸!你可能想做这些处理,例如,当你想用同一模型产生一些差异(大树和小树本质上是一样的),亦或你想将物体的尺寸与其现实世界的尺寸联系起来!对于上面的例子,你可能想使点的三个坐标翻译 2015-07-26 21:30:26 · 821 阅读 · 0 评论 -
OpenGL教程翻译 第十二课 透视投影
第十二课 透视投影原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景在这一节中我们将会介绍如何在保持深度外观的情况下将三维世界中的物体投影到二维平面上去。最有代表性的例子是:当我们站在一条笔直的马路的中间向前看时,我们会发现马路的两边会越来越靠近,并最终汇聚成一个点。这就是图形学中常说的透视投影。为了实现上面的效果,在本节中我们需要生成一个投影矩阵,这个投翻译 2015-09-07 16:05:18 · 3119 阅读 · 0 评论 -
OpenGL教程翻译 第十四课 相机控制(一)
第十四课 相机控制(一)原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景在之前的教程中我们学习了如果当相机不位于初始位置时,如何使得得场景中的物体正确的投影到屏幕上面,那么我们下一步就应该学着去控制这个相机,使得相机可以在场景中自由移动。我们可以用鼠标和键盘控制相机——鼠标控制视口方向,键盘控制相机的位置。这些都和第一人称视角相似,这一节我们主要来学习鼠翻译 2015-09-07 19:45:47 · 1229 阅读 · 0 评论 -
OpenGL教程翻译 第二十一课 聚光灯
第二十一课 聚光灯原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景聚光灯是第三个也是最后一个我们将要介绍的光源类型(至少在一段时间内)。他比平行光和点光源更加复杂,而本质上还是用到这二者的很多内容。我们需要设置聚光灯光源的位置,并且其光照强度随着和目标物距离的增加而减小(像点光源那样),而且他也要指向一个特定的方向(像平行光那样)。但是聚光灯新增了一个特翻译 2015-09-30 14:35:07 · 2075 阅读 · 0 评论 -
OpenGL教程翻译 第二十六课 法线纹理
第二十六课 法线纹理背景我们之前使用的光照技术还算不错,光线在模型表面得到了很好的插值,为场景营造出真实感。但是这种效果还能够有非常大的提升。事实上,我们以前使用的这种插值方式在某种程度上来说是对效果提升的一个障碍,特别是当纹理代表的是凹凸不平的平面的时候,这使得模型看起来就太平滑了。例如下面这两幅图片: 左边的图片比右边的图片看起来要好多了,它将石头表面的凹凸不平的感觉很好的表现了出来,而右边的翻译 2015-11-21 10:27:19 · 1274 阅读 · 0 评论 -
OpenGL教程翻译 第二十四课 阴影贴图(二)
第二十四课 阴影贴图(二)原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景在前面一节中我们学习了 shadow mapping 的基本原理,并且介绍了如何将深度信息渲染到一张纹理上面并最终通过从深度缓存中进行采样而将其渲染到屏幕上面。在这一节中我们将会介绍如何使用这个功能来创建真正的阴影。 我们知道 shadow mapping 是一个二次渲染技术,在翻译 2015-10-01 22:03:23 · 911 阅读 · 0 评论 -
OpenGL教程翻译 第二十三课 阴影贴图(一)
第二十三课 阴影贴图(一)原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景阴影和光是紧密联系在一起的,因为如果你想要产生一个阴影就必须要光。有许多的技术可以生成阴影,在接下来的两个章节中我们将学习其中的一种比较基础简单的技术-阴影贴图。当光栅化的时候,你会问这个像素是否位于阴影中?让我们换个问法,从光源到像素的路径是否中间经过其他物体?如果是,这个像素可翻译 2015-10-01 22:01:33 · 1225 阅读 · 0 评论 -
OpenGL教程翻译 第十九课 镜面高光
第十九课 镜面高光原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载) 背景当我们在计算环境光照的时候,唯一的要考虑的因素是光照强度;之后当我们计算到漫反射光照的时候,我们将光照的方向因素考虑进去了。镜面反射光包含这些因素,并且增加一个新的因素——观察者位置。这样做的原因是当光线以某一角度照射到一个平面上时,他会以相同的角度反射出去(在法线的另一边)。如果观察翻译 2015-09-29 11:31:07 · 3192 阅读 · 0 评论 -
OpenGL教程翻译 第十七课 环境光(Ambient Lighting)
第十七课 环境光(Ambient Lighting)背景光照是 3D 图形学的最重要的研究领域之一。对光照得体的模拟会使渲染的场景增加很多视觉吸引力。之所以使用“模拟”这个词是因为你无法完全准确的计算出光在自然界中的表现。真正的光是由大量的称为“光子”的粒子组成的,并且同时表现出波和粒子的特性(光的“波粒二象性”)。如果你在程序中试图序计算每一个光子的作用,那么你将很快用光电脑的计算力。因此,这些年翻译 2015-09-17 12:37:55 · 1721 阅读 · 0 评论 -
OpenGL教程翻译 第二十课 点光源
第二十课 点光源原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景知识基于平行光,我们已经学习了三种基本光照模型(环境光、漫反射光和高光)。平行光是一种只有单一方向并且没有起点的灯光类型。因此,它不会随着距离增大而减弱(事实上,你甚至不能定义它与目标的距离)。我们来定义一下点光源,点光源有起点和衰减效果,并且当物体远离点光源时这种衰减效果变得更为明显。灯泡翻译 2015-09-29 11:34:21 · 1298 阅读 · 0 评论 -
OpenGL教程翻译 第十六课 基本的纹理贴图
第十六课 基本的纹理贴图背景纹理贴图就是将任意一种类型的图片应用到 3D 模型的一个或多个面上。图片(也可以称之为纹理)内容可以是任何东西,但是他们一般都是一些比如砖,叶子,地面等的图案,纹理贴图增加了场景的真实性。例如,对比下面的两幅图片。 为了实现纹理贴图,你需要进行三个步骤:将图片加载到 OpenGL 中;定义模型顶点的纹理坐标(以对其进行贴图);用纹理坐标对图片进行采样操作进而得到像素颜色翻译 2015-09-17 12:34:34 · 2163 阅读 · 0 评论 -
OpenGL教程翻译 第十八课 漫反射光
第十八课 漫反射光背景环境光和漫反射光的主要不同是,漫反射光的计算需要依靠光线方向而环境光完全忽略了它!当只有环境光时整个场景被均等照亮,漫反射光会使物体面对光的部分比背对光的部分更加明亮。此外漫反射光还增加了一些新的计算,光线的入射角决定了表面的亮度。通过下面的图片来演示这个概念:让我们假设两条光线的强度是一样的,而唯一不一样的是它们入射的方向。在漫反射光照模型中,左边物体的表面比右边亮,因为左边翻译 2015-09-17 12:44:08 · 1859 阅读 · 0 评论 -
OpenGL教程翻译 第二十二课 使用Assimp加载模型
第二十二课 使用Assimp加载模型原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)背景到现在为止我们都在使用手动生成的模型。正如你所想的,指明每个顶点的位置和其他属性有点时候并不是十分方便。对于一个箱子、锥体和简单平面还好,但是像人们的脸怎么办?现实的商业应用和游戏中,程序中使用模型一般都是由美术人员通过如 Blender, Maya 或 3ds Max翻译 2015-09-30 14:45:21 · 4761 阅读 · 0 评论 -
第五课 一致变量
第五课 一致变量原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background在本教程中我们将接触到一个新的着色器变量类型——一致变量。属性变量与一致变量之间的区别:属性变量包含顶点特性数据所以每次调用shader都会从顶点缓冲区中重新导入新的数据,而一致变量中的值在整个绘制过程中都保持不变。这意味着我们在翻译 2015-07-26 21:19:08 · 966 阅读 · 0 评论 -
OpenGL教程翻译 第十一课 Concatenating Transformations
OpenGL教程翻译 第十一课 Concatenating Transformations原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background在前几章中我们学习了一些变换,通过它们我们能将3D世界中的物体灵活的移动到任何位置。之后我们还要学习两个变换(相机控制和透视投影),但是正如你可能已经猜到的,我们需要一个变换的翻译 2015-07-26 21:34:29 · 962 阅读 · 0 评论 -
OpenGL教程翻译 第十课 索引绘制
OpenGL教程翻译 第十课 索引绘制原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)BackgroundOpenGL提供了几个绘制函数。我们目前使用的glDrawArrays()函数属于“顺序绘制”的类别。这意味着顶点缓冲区以指定的偏移量进行扫描每X(1个顶点时表示点,两个顶点表示线,等等)个顶点作为一个图元。这使用起来很方便翻译 2015-07-26 21:32:29 · 944 阅读 · 1 评论 -
OpenGL教程翻译 第六课 平移变换
OpenGL教程翻译 第六课 平移变换原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background 这一教程我们来看一看如何在三维场景中对物体进行各式各样的变换,并且在保持场景的立体感的情况下将其渲染到屏幕上翻译 2015-07-26 21:21:08 · 1601 阅读 · 0 评论 -
OpenGL教程翻译 第三课 First Triangle
OpenGL教程翻译 第三课 First Triangle原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载)Background这一节是非常短的。我们简单的扩展上一节的内容来画一个三角形。在这一节中我们再一次在规范化空间中安排我们的顶点坐标。能够看见的顶点一定要在盒子内部,这样视口矩阵才能将这些顶点映翻译 2015-07-26 21:11:12 · 704 阅读 · 0 评论