Shader学习整理
好久没写博客了,研究了一段时间shader,整理一下
Unity的shader包含三种,固定渲染管线,CG片段,surface表面着色器,unity推荐surface表面着色器,写起来简单,很多东西unity都做好了,
实际中往往看具体需求而定,一般选cg片段和surface表面着色器。然而不管怎么说,基础理论才是重点。
看到很多人一上来就拿起shader啃,然而总是看的一头雾水。尤其是Unity中有本 书《shaderLab实战详解》,如果没有图形基础理论,看起来很累。
完全搞不懂说的什么,并不是黑这本书,这本书其实很不错,然而不适合初学者。这本书的阅读者应该是熟悉图形学,只是想转战Unity shader的人更适合。
里面的很多实验都是在验证或探索某个理论。技术实现上隐藏了很多图形学的知识。所以建议是有一定图形学基础知识后再看这本书,一定能受益良多。
关于shader的学习,简要说下,个人理解,目前自己也是半吊子水平,颇有以其昏昏使人昭昭的感觉,有好建议的欢迎留言,交流
1.三角函数 向量(初高中数学知识)
2.行列式 矩阵(线性代数)
3.3D数学基础(书籍 《3D数学基础:图形与游戏开发》中英文版本对照着看)
4.CG基础理论(书籍 《Cg教程_可编程实时图形权威指南》中英文版本对照着看)
5.Unity Shader基础(官方文档)
6.Unity Shader基础案例(Unity着色器和屏幕特效开发秘籍 csdn可以搜索下载中英文版本及案例源码)
7.Unity 案例实战(《shaderLab实战详解》例子丰富,需要一定的基础理论)
一些学习网站及博客
1.Unity官方论坛
2.风宇冲 Shader讲解(浅显易懂)
3.潜水的小男猫(例子较多,配合实战)
4.candycat shader(配合 Unity着色器和屏幕特效开发秘籍 这本书很不错 shadertoy很有深度哦)
5.OpenGL教程
6.其他一些学习资源参考这篇文章
shader插件
1.Shader Forge(这个插件有视频的,百度网盘很多,自己搜)
略微整理下,Shader的资料现在已经不少了,网上一些原创文章博客也很多,也欢迎大家留言推荐
Shader学习整理相关推荐
- Java设计模式(学习整理)---命令模式
设计模式之Command(学习整理) 1.Command定义 不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作. 将这些命令封装 ...
- 2019.07.30 学习整理
2019.07.30 学习整理 数据类型 1. 什么是数据类型 数据类型指的就是变量值的不同类型 2. 为何对数据分类? 变量的是用来反映状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数 ...
- java基础学习整理(一)
java基础学习整理(一) lesson1: D0s命令: 1.回到根目录,>cd \ 2.复制命令行下的内容,右击标记所要复制的内容,这样就已经复制好了,右击粘贴就可以了. 3.查看,设置环境 ...
- Elastic Nodes Example 翻译及学习整理
文章目录 Elastic Nodes Example 翻译及学习整理 题记: 简介: Node Class Definition Edge Class Definition GraphWidget C ...
- ACM竞赛学习整理--矩阵运算
ACM竞赛学习整理–矩阵运算 了解矩阵类 [任务] 实现矩阵的基本变换 [接口] 结构体:Matrix 成员变量: int n,m 矩阵大小 int a[][] 矩阵内容 重载运算符: +.-.x 成 ...
- ACM竞赛学习整理开篇之01背包问题
ACM竞赛学习整理开篇之01背包问题. 最近,偶然的一次机会让我关注信息奥赛的一些内容.发现其中的内容很有趣,是学习编程的一条很好的路径,又能很好地将数学和编程联系到一起.在csdn里看到了不少同好也 ...
- Vue-Cli 学习整理【转载】
Vue-Cli 学习整理 坚果 程序猿/艺术 关注他 21 人赞同了该文章 1. vue-cli(vue脚手架)全集 1.1. vue-cli2脚手架 1.1.1. nodejs/npm环境安装 1 ...
- Wix学习整理(2)——HelloWorld安装添加UI
在前一篇随笔Wix学习整理(1)--快速入门HelloWorld中,我们制作的安装包安装界面太简单,没有与用户进行交互的过程.下面我们修改Wix源文件来给安装程序添加UI. 1 Wix的预定义UI简介 ...
- 2019.08.08学习整理
2019.08.08学习整理 文件的高级应用 1.可读.可写 r+t: 可读.可写 w+t: 可写.可读 a+t: 可追加.可读 # wt with open('36w.txt', 'wt', enc ...
最新文章
- 树莓派视觉小车 -- 小球追踪(颜色追踪)(OpenCV色彩空间HSV)
- C 语言编程 — 堆栈与内存管理
- 优化算法求解复杂约束问题策略(以粒子群算法为例讲解求解复杂约束问题的多种策略)
- Nginx的定时事件的实现(timer)
- php异步处理下载文件,异步处理Excel文件导入【流程图+PHP示例】
- 怎么从mysql注册表删除用户_mysql 创建和删除用户
- lua调用shell 脚本
- 基于FPGA实现uart串口模块——进阶版1
- android启动过程之init.rc文件浅析
- js原生attachEvent与addEventListener的用法
- SQL Server 2012 安装图解教程(附sql2012下载地址)
- 报表控件是什么?常见报表类型有哪些?
- VNC远程桌面使用方法
- CC1310F128RGZR 无线收发器 微控制器
- STM32驱动PCF8563,使用模拟IIC
- 强制双休!传腾讯光子调整加班机制,21 点前必须离开工位
- 十二星座匹配对象_来看十二星座最配与最不配的对象是谁
- spoon java_如何以及为什么使用Spoon分析,生成和转换Java代码
- Centos 6安装Maven
- Java 报错 restartedMain] o.s.boot.SpringApplication : Application run failed