Shader原理部分

渲染绘图管线流程:

 

 

1.顶点处理(坐标系的转换)

一个模型有自身的方向(前方,上方,右方等)和中心点,既本地坐标系;

将这个模型放到场景当中,通过场景中的世界坐标原点和世界坐标的方向,计算出当前模型的世界坐标,从本地坐标系转换到世界坐标系;

一个模型在不同的角度观察,观察的效果是不一样的,在Unity中,摄像机是观察者,摄像机也有自己的方位,相对于每个模型来讲,就有了一个摄像机的观察坐标系;

有了观察坐标系以后,模型和摄像机都有自己的位置,最终渲染的时候,将模型投影到摄像机的画面上,转成了投影坐标系;

摄像机有两种渲染模式:正交和透视,正交没有近大远小的概念,透视有;

2.面处理

将所有的顶点连到一起,形成了面;

面剔除就是剔除摄像机看不到的面的那一部分,面截取是摄像机看到的那一部分被截取下来,在面剔除中,会产生一点能耗;

3.光栅化

表示的是将一个面转换成一个一个像素;

4.像素处理

给每一个像素去着色的过程,纹理坐标指的是当前像素所对应的贴图的坐标

总之,关于3D模型输出为屏幕上的2D图片的过程分为四步:顶点处理(四个坐标系的转换)、面处理(面的截取和剔除)、光栅化(一个一个的像素排列成面)、像素处理(为每个像素着色);这样就形成了在屏幕上所看到的画面

Shader基础(渲染管线)的更多相关文章

  1. Unity Shader 基础(4) 由深度纹理重建坐标

    在PostImage中经常会用到物体本身的位置信息,但是Image Effect自身是不包含这些信息的,因为屏幕后处其实是使用特定的材质渲染一个刚好填满屏幕的四边形面片(四个角对应近剪裁面的四个角). ...

  2. 【Unity Shader】Shader基础

    目录 Chapter3 Unity Shader 基础 Chapter3 Unity Shader 基础 概述 在Unity需要材质(Material)与Unity Shader配合使用来达到满意的效 ...

  3. Unity Shader基础

    Unity Shader基础 先上代码,代码一般是这样的. void Initialization(){ //先从硬盘加载代码再加载到GPU中 string vertexShaderCode = Lo ...

  4. [原]Unity3D深入浅出 - Shader基础开发

    概述 简单来讲,shader是为渲染管线中的特定处理截断提供算法的一段代码.Shader是伴随着可编程渲染管线出现的,开发者可使用Shader对渲染过程加以控制,拥有更大的创作控件,因此Shader的 ...

  5. Unity3D Shader基础教程

    原文地址:http://bbs.9ria.com/thread-212557-1-1.html 此教程将指引你如何建立自己的Shaders,让你的游戏场景看起来更好.Unity配备了强大的阴影和材料的 ...

  6. Unity Shader入门精要学习笔记 - 第3章 Unity Shader 基础

    来源作者:candycat   http://blog.csdn.net/candycat1992/article/ 概述 总体来说,在Unity中我们需要配合使用材质和Unity Shader才能达 ...

  7. 第二章 Unity Shader基础

    [TOC] 1. Unity Shader 的基础: ShaderLab 学习和编写着色器的过程一直是一个学习曲线很陡峭的过程,通常情况下为了自定义渲染效果往往要和很多文件和设置打交道,这些设置很容易 ...

  8. Unity Shader 基础

    推荐: https://www.cnblogs.com/nanwei/p/7277417.html 上面链接作者的整个系列都写的不错 https://www.cnblogs.com/nanwei/ca ...

  9. Shader基础(固定管线着色器)

    在Shader的编码中,要养成不加空格的习惯,否则会有时候出现一些错误 固定管线着色器: 优点:实现简单 缺点:处理的效果比较差 //设置Shader的路径 Shader "MyFixedS ...

随机推荐

  1. CentOS7上安装RabbitMQ

    1.首先需要安装erlang RabbitMq依赖于erlang,所以得先装这个.推荐使用阿里云的镜像资源. 通过这个链接 https://opsx.alibaba.com/mirror/search ...

  2. html调用html的方法

    html调用html的方法 html中引入调用另一个html的方法,尝试了好几种,都列出来: 其中第一种是最好的,其他的方法,可以尝试看看,是不是适合你当前项目 一.div+$(“#page1”).l ...

  3. 搭建eclipse开发环境

    eclipse-jee配置 基本配置: 快捷查找:window->perferences->搜索框搜索 utf8: window->perferences->general-& ...

  4. cmd批处理命令及powershell

    https://blog.csdn.net/wenzhongxiang/article/details/79256937 Powershell查询IP地址及主机名信息:1.foreach($ipv4  ...

  5. python3自动生成并运行bat批处理,并重定向输入消除黑窗口

    #coding:utf-8import os #bat文件的内容(temp.bat)bat_name='temp.bat's1='''echo offipconfigecho Hello world! ...

  6. 设计模式、j2ee 部 分、EBJ 部 分

    八. 软 件 工 程 与 设 计 模 式 1 .UML 方 面 标准建模语言 UML.用例图,静态图(包括类图.对象图和包图),行为图,交互图(顺序图,合作 图),实现图. 2 .j2ee 常 用 的 ...

  7. java中的byte

    8 bit (位) = 1 Byte (字节) java中的byte就是Byte 1024 Byte = 1KB 1024 KB = 1MB 1:“字节”是byte,“位”是bit : 2: 1 by ...

  8. 02.centos6.4找不到ifcfg-eth0(静态ip配置)

    1.默认情况在/etc/sysconfig/network-scripts/目录下面找不到ifcfg-eth0文件,我们需要手动copy 1.1动态ip配置 #cp ifcfg-lo ifcfg-et ...

  9. Django models模型(1)

    1)使用模型需要在INSTALLED_APPS中注册 2)模型字段(字段类型和字段选项) 1.字段类型 常用: CharField,TextField: 对应字符串对象 DateTimeField和D ...

  10. SignalR快速入门

    本篇是SignalR系列教程的第一篇,本篇内容介绍了如何创建SignalR应用,如何利用SignalR搭建简易的聊天室等,本篇内容参考自:http://www.asp.net/signalr/over ...