目录 1.坐标空间 1.2 坐标空间的变换 @ 1.坐标空间 我们在以前渲染流水线中就接触了坐标空间的变换.例如,在学习顶点着色器流水线阶段时,我们说过,顶点着色器的最基本功能就是把模型的顶点坐标从模型空间转换到齐次裁剪坐标空间中. 1.2 坐标空间的变换 我们先要为后面的内容做些数学铺垫.在渲染流水线中,我们往往需要把一个点或方向矢量从一个坐标空间转换到另一个坐标空间.这个过程到底是怎么实现的? 我们把问题一般化,我们知道,要想定义一个坐标空间,必须指明其原点的位置和三个坐标轴的方向.而这些数…
1. Unity Shader的内置变量(数学篇) 使用Unity写shader的一个好处在于,它提供了很多内置参数,这使得我们不在需要自己手动算一些值.本文给出Unity内置的用于空间变换和摄像机以及屏幕参数的内置变量.这些内置变量可以在UnityShaderVariables.cginc文件中找到定义和说明. 1.1 变换矩阵 首先是用于坐标空间变换的矩阵.表中给出了Unity5.2版本提供的所有内置变换矩阵.下面的所有矩阵都是float4×4类型的. 上表给出了这些矩阵的常用用法.但读者可…
@[TOC] 1. 顶点的坐标空间变换过程 我们知道,在渲染流水线中,一个顶点要经过多个坐标空间的变换才能最终被画在屏幕上.一个顶点最开始是在模型空间中定义的,它最后会被变换到屏幕空间中,得到真正的屏幕像素坐标.因此接下来我们将解释顶点要进行的各种空间变换的过程. 为了帮助大家理解这个过程,我们将建立在农场游戏的实例背景下,每讲到一种空间变换,我们都会解释如何应用到这个案例中. 在我们的农场游戏中,妞妞很好奇自己是如何渲染到屏幕上的.它只知道自己和一群小伙伴快乐的在农场里吃草,而前面一直有一个摄…
1. 笛卡尔坐标系 在游戏中,我们使用的数学大部分都是为了计算位置.距离和角度等变量.而这些就算大部分是在笛卡尔坐标系下进行的. 1.1 二维笛卡尔坐标系 一个二维笛卡尔坐标系包含了两个部分的信息 1.一个特殊的位置,即原点,他是整个坐标系的中心 2.两条过原点的互相垂直的矢量,即x轴和y轴.这些坐标轴也被称为是该坐标系的基矢量. 虽然在图中x轴和y轴分别是水平方向的和垂直方向的.但这并不是必须的.而且虽然图中的x轴指向右.y轴指向上,但这也不是必须的.如下图所示 1.2 三维笛卡尔坐标系 在三…
法线变换 法线(normal),也被称为法矢量(normal vector).在以前我们已经讲过如何使用变换矩阵来变换一个顶点或方向矢量,但法线是需要我们特殊处理的一种方向矢量.在游戏中,模型的顶点往往会携带额外的信息,而顶点法线就是其中一种信息.当我们变换一个模型的时候,不仅需要变换它的顶点,还需要变换顶点法线,以便在后续处理(如片元着色器)中计算光照等. 一般来说,点和绝大部分方向矢量都可以使用同一个4×4或3×3的变换矩阵Ma->b把其从坐标空间A变换到坐标空间B中.但在变换法线的时候,如…
摘录自 冯乐乐的<Unity Shader入门精要> 笛卡尔坐标系 1)二维笛卡尔坐标系 在游戏制作中,我们使用的数学绝大部分都是计算位置.距离.角度等变量.而这些计算大部分都是在笛卡尔坐标系下进行的. 一个二维的笛卡尔坐标系包含了两个部分的信息: 一个特殊的位置,即原点,它是整个坐标系的中心. 两条过原点的互相垂直的矢量,即X轴和Y轴.这些坐标轴也被称为是该坐标的矢量. OpenGL 和 DirectX 使用了不同的二维笛卡尔坐标系.如下图所示: 2)三维笛卡尔坐标系 在三维笛卡尔坐标系中,…
数学对于计算机图形学的重要性是不言而喻的.在学习Shader之前,首先就要打好数学基础,好在入门Unity Shader所需的数学知识都是线性代数中很基础的的内容.按部就班的来,第一篇文章记录总结的是坐标系,点,矢量等概念以及简单的运算.本文主要源自<Unity Shader入门精要>一书的读书笔记. 如果有小伙伴对Shader着色器相关的概念还不了解的话,可以先看下这篇文章一篇文章搞懂到底什么是渲染流水线 坐标系 在三维笛卡尔坐标系中,我们需要定义3个坐标轴和一个原点.这3个坐标轴被称为该坐…
<ORACLE数据库管理与开发>第三章学习之常用函数记录 注:文章中的*代表所要操作的列名 1.lower(*)/upper(*),将此列下的值转为小写/大写 2.initcap(*):把列值的第一个字符转为大写 3.comcat(*,*):把列1的值与列2的值连接成一个字符串 4.substr(*,m,n):返回指定的字符串(该字符串第m个字符开始,长度为n) 5.length(*):返回列值的长度 6.instr(*,m,n):返回n字符在列值中的数字位置,m是表示从m个字符开始搜索 7.…
第三章  进程管理 姓名:王玮怡  学号:20135116 一.进程 1.进程的含义 进程是处于执行期的程序以及相关资源的总称,程序本身并不是进程,实际上就是正在执行的代码的实时结果.Linux内核通常把进程也叫“任务”. 2.线程的含义 执行线程简称线程,是在进程中互动的对象.内核调度的对象是线程而不是进程.Linux系统不区分线程和进程,线程只是一种特殊的进程. 3.进程的执行过程 (1)clone()调用fork(),通过复制一个现有进程来创建一个全新的进程,进程开始存活.其中调用fork…
第三章 进程管理 一.进程 1.进程 进程就是处于执行期的程序. 进程就是正在执行的程序代码的实时结果. 进程是处于执行期的程序以及相关的资源的总称. 进程包括代码段和其他资源. 2.线程 执行线程,简称线程,是在进程中活动的对象. 内核调度的对象是线程而不是进程. Linux对线程并不特别区分,视其为特殊的进程. 3.虚拟处理器和虚拟内存 在现代操作系统中,进程提供两种虚拟机制:虚拟处理器和虚拟内存. 包含在同一个进程中的线程可以共享虚拟内存,但是每个都拥有各自的虚拟处理器. 4.几个函数 f…