个人学习笔记——庄懂的技术美术入门课(美术向)03
个人学习笔记——庄懂的技术美术入门课(美术向)03
- 1 回顾渲染流程
- 2 尝试shader代码
- 3 Lambert试试
- 4 节点组
- 5 作业
1 回顾渲染流程
老师以美术绘画的角度理解渲染管线,比较形象
不过在第一课的学习中,我已经补充了些理论,所以这一块就略过
2 尝试shader代码
首先是关联Unity里关联到VS,这部分也较简单,略去
以shader forge新建基础的shader来识别代码
可以看这里来稍微看看Unity的基础语义
仔细看看操作段,和我们之前在OpenGL里写shader很像
逐层来分析
- 操作段1和2的路径和材质参数暂且略过
- 第三段定义了一个输入结构,这个结构体有一个float4的变量 vertex,使用的是POSITION
- 第四段定义了一个输出结构,这个结构体有一个float4的变量 pos,使用的是SV_POSITION
- 第五段,我们声明了一个方法vert,这个方法以VertexInput的变量v为输入,输出的是VertexOutput
第一段把0强转成VertexOutput,赋值给变量o
o里的pos变量,采用v变换到到裁剪空间的坐标结果
然后返回o - 第六段,frag方法,对应输出的是COLOR这个参数
接受VertexOutput的结果,其内部设置了一个emissive的参数为颜色,然后输出
步骤知识改了下输出的颜色,比较简易
3 Lambert试试
- 这段实现Lambert的代码首先在输入阶段新增了一个NORMAL(float3就可以)
- 输出阶段声明一个变量在TEXCOORD0这个槽位,这个变量用来存储变化后的法线信息
- 顶点着色器里新增了把法线从切线空间转到世界空间
- 片段着色器里得到平行光的方向,发现信息,点乘以后取大于零的部分,返回颜色值
- nDirWS意为normal方向在worldspace
- 这里讲到unity存光照位置的时候是个齐次坐标,0代表向量,1代表点
- _WorldSpaceLightPos0.w为0,表示该光源为平行光。
_WorldSpaceLightPos0.w为1。则表示光源为点光源或聚光灯。
4 节点组
所谓fakelight,也就是自定义一个三维向量和颜色
5 作业
关于Lambert和HelloWorld代码都有了,半兰伯特也很简单,按照原本的连连看做法*0.5+0.5
关于作业,首先观察,发现是有颜色的,说明进行了UV的采样
但是亮部没有变化,暗部发生了颜色变化
目前我们在代码和光照模型上不会做大改动,所以不考虑该光照模型这一点
我又想到是不是单独判断暗部,给暗部成一个比例?
但是这样会有明显的分区感,不会连续变化,所以放弃这个数据是单独的一个乘数因子
- 回忆一下步骤:半Lambert→采样UV→输出
外围不可能的话,只有可能在UV或者采样上东西上做手脚
因为其他数据不可能变,所以slider改的是uv坐标,其中一个坐标给了Lambert,所以其改的是另一个坐标
根据作业改这个坐标有个效果,就是暗部变化,其他不变,由此推断这张材质图的样子
按照这个思路画了个图(虽然很丑(并且不知道怎么把渐变的意思很好表达出来Orz
个人学习笔记——庄懂的技术美术入门课(美术向)03相关推荐
- 个人学习笔记——庄懂的技术美术入门课(美术向)19
个人学习笔记--庄懂的技术美术入门课(美术向)19 1 顶点平移 2 顶点缩放 3 顶点旋转 4 综合应用 1 顶点平移 2 顶点缩放 方法类似 避免产生负值 3 顶点旋转 方法类似 以下是涉及到的一 ...
- 个人学习笔记——庄懂的技术美术入门课(美术向)01
个人学习笔记--庄懂的技术美术入门课(美术向)01 0 前言 1 工程搭建示范 2 理论 2.1 结构(struct) 2.2 渲染管线 3 操作 3.1-2 向量/标量/点积等若干线代基础 3.3 ...
- 个人学习笔记——庄懂的技术美术入门课(美术向)07
个人学习笔记--庄懂的技术美术入门课(美术向)07 1 单色环境光 2 三色环境光 3 投影 4 光照模型组合 有关AO的知识之前涉及到就是 SSAO的实现了,可以回顾下 1 单色环境光 环境光加上环 ...
- 个人学习笔记——庄懂的技术美术入门课(美术向)02
个人学习笔记--庄懂的技术美术入门课(美术向)02 1 作业点评 2 作业批改 2.1 作业1 2.1.1 模拟高光 2.1.2 菲涅尔 2.1.3 叠加模式 2.2 作业2 2.2.1 关于屏幕UV ...
- 个人学习笔记——庄懂的技术美术入门课(美术向)12
个人学习笔记--庄懂的技术美术入门课(美术向)12 1 作业示范 2 答疑 3 作业示范思路 4 作业实现·准备 5 作业实现·光照模型 6 作业实现·细节 7 开源Shader 该课是在13课之后上 ...
- 个人学习笔记——庄懂的技术美术入门课(美术向)04
个人学习笔记--庄懂的技术美术入门课(美术向)04 1 作业点评 2 作业答案 2.1 半Lambert 2.2 SSSLut 2.3 批改 2.3.1 批改1 2.3.1.1 分层 2.3.1.2 ...
- 个人学习笔记——庄懂的技术美术入门课(美术向)08
个人学习笔记--庄懂的技术美术入门课(美术向)08 1 作业点评 2 作业批改 3 法线贴图 1 作业点评 没啥问题,注意调节AO强度需要从白色去调 看起来透明的猴子有风格化,会讲例子 右下角的蓝色小 ...
- 个人学习笔记——庄懂的技术美术入门课(美术向)09
个人学习笔记--庄懂的技术美术入门课(美术向)09 1 菲涅尔 2 连连看-MatCap 3 连连看-CubeMap 4 代码 MatCap 5 代码 CubeMap 1 菲涅尔 更具体的PBR可以参 ...
- 个人学习笔记——庄懂的技术美术入门课(美术向)21
个人学习笔记--庄懂的技术美术入门课(美术向)21 1 案例材料制作 2 shading 特效部分最后一讲 1 案例材料制作 渲染一张UV网格图和一张分块图 在上一节中说过的bake方法 回推,首先看 ...
最新文章
- Xamarin Android教程Android基本知识版本介绍与系统介绍
- 他们的背后,是我们!
- C# 网络编程之豆瓣OAuth2.0认证详解和遇到的各种问题及解决
- Android开发:程序目录结构详解:activity主要方法等
- 【规范】前端编码规范——css 规范
- java利用数组随机抽取幸运观众_java利用数组随机抽取幸运观众
- 如何遍历某数据库中的每一个表的总记录数
- 现代 C++ 救不了程序员!
- keyshot分辨率多少合适_分辨率单位及换算详解
- ATMV1函数版v1
- 极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课
- 期末考试_细胞自动机
- resnet50能用cpu跑吗_用最简单的方式训练史上最强ResNet-50,性能超过魔改结构的ResNeSt...
- 如何做好手机APP测试?APP测试流程及解决方案
- Linux Puppet基础知识
- 获TÜV莱茵认可,美的冰箱在节能和静音方面已达全球领先水平
- 事态升级管理程序范本_项目管理事态升级流程
- grafana 获取禅道bug执行sql语句的问题
- NVMe技术基础知识
- 计算两个日期相隔的时间