Rlab漫浮号怎么样?

首先附上庄懂的技术美术入门(美术向)系列教程链接:2022年2月25日P5主要内容:1.什么是漫反射&什么是镜面反射2.在ShaderForge中写漫反射与镜面反射3.用ShaderLab写漫反射与镜面反射【题外话】【行业黑化-各种向量】常用向量:(全要记)nDir:法线方向,点乘操作时简称n;IDir:光照方向,点乘操作时简称l;vDir:观察方向,点乘操作时简称v;.rDir:光反射方向,点乘操作时简称r;hDir:半角方向(Halfway),IDir和vDir的中间角方向,点乘操作时简称h;所在空间:(暂时只记WS,其余看热闹)OS: ObjectSpace物体空间,本地空间;WS: WorldSpace 世界空间;VS:ViewSpace观察空间;CS:HomogenousClipSpace齐次剪裁空间;TS: TangentSpace切线空间;TXS: TextureSpace纹理空间;例:nDirWS:世界空间下的法线方向;(不能脱离空间说方向)1.什么是漫反射&什么是镜面反射漫反射(Diffuse Reflection):漫反射,是投射在粗糙表面上的光向各个方向反射的现象。当一束平行的入射光线射到粗糙的表面时,表面会把光线向着四面八方反射,所以入射线虽然互相平行,由于各点的法线方向不一致,造成反射光线向不同的方向无规则地反射,这种反射称之为“漫反射”或“漫射”。(来自百度百科)庄懂老师讲:一束光射入表面(粗糙的),被反射出来的光是漫无目的,四面八方的,均匀的散射。 实际运用:电影屏幕的光是漫反射。因为漫反射的反射光,向四面八方均匀散射,所以反射亮度和观察者的方向无关;实现方式:Lambert (n dot l),显然vDir不参与计算。镜面反射(Specular Reflection):镜面反射是指若反射面比较光滑,当平行入射的光线射到这个反射面时,仍会平行地向一个方向反射出来,这种反射就属于镜面反射。(来自百度百科)庄懂老师将:一束光射到一个表面能反射回去,这个反射光的路径是有目的,沿镜面方向,不均匀的散射。 实际运用:化妆镜,车漆。因为反射有明显的方向性,所以观察者的视角决定了反射光线的有无,明暗。实现方式:-Phong(r dot v),即光反射方向和视角方向越重合,反射越强;-Blinn-Phong(n dot h),即法线方向和半角方向越重合,反射越强;2.在ShaderForge中写漫反射和镜面反射漫反射(Lambert前几P已写过)下面写PhongPPT截图【Phong(r dot v),rDir=Reflect(-lDir,nDir);Power是啥? 一般叫高光次幂,效果类似于PS里的正片叠底叠一叠】ShaderForge节点连连看然后写Blinn-PhongPPT截图【Max:在这里是为了截断负数值,复制虽然表现为黑色,但是实际上是去不到负值的】ShaderForge节点连连看Blinn-Phong相较于Phong更加节省性能,因此Phong的效果和费用也是更好,更贵的3.代码篇结合lambert-Blinn-phong这样一个光照模型相对完善的Shader 一步到位 因为这是上古套路所以庄懂老师称为OldSchool的Shader。学会直接利用Lambert作为模板,避免从0开始;【拿到模板的第一件事就是学会修改路径!!!】路径规范【工程名/分P名/Shader名】PPT截图在Properties里写的是公开到材质参数面板的数据PPT截图PPT截图Lambert-Blinn-Phong in ShaderLabP1本次作业: 总体效果图 Lambert-BlinnPhong在ShaderLab里已写过,在这不在重复下面是Lambert-Phong,相较于:blinnPhong的nDoth ,而Phong是vDotr,因此只需要修改像素ShaderLambert-PhongLambert-BlinnPhong2022年2月26日P6主要内容:1.作业讲解(基本没大问题)2.三种风格化shader1.见上P2.三种效果第一种:FakeEnvReflect(假的环境光反射)ShaderForge连连看主要是将Phong的高光模型对应到了一张RempTex的UV坐标上,然后这里给了一张unity自带的noiseTex第二种:玉质效果(教程中是葡萄效果,因为没有葡萄模型,这里换一种方式呈现效果)ShaderForge连连看3.斑驳效果ShaderForge连连看总体P1P2这里通过Step(A<=B)将Mask做了遮罩,转化成了两个黑白二维遮罩,将这个数值连给Lerp分别给两块不同的颜色和不同的高光强度。3.答疑主要问题PPT截图1.连连看不清楚类型匹配连接的线有三根线(对应有三个分量),两根线(两个分量),一根线(一个标量或一个向量),连节点是,数值的一一对应2.VS跟SF效果不一样(Phong)为什么?主要是 shaderforge里的法线向量质量更高(Normalized)3.情报BRDFPPT截图至此学的Lambert光照模型,Phong/Blinn-Phong高光模型,两者结合起来只是一种相较完整的Shader光照体系,除此之外PBR常用的GGX高光模型还有很多很多没学。因此庄懂老师推荐了一个应用,可以较为直观的看到这些光照模型,来自迪士尼的爱(且开源)https://github.com/wdas/brdf/downloads}
这一节将介绍更多的R图形资源。首先是定制R图形的一些常用方法,主要涉及数据和模型的图形绘制。然后是如何自定义其他类型的图形或点线等元素。A. 绘制二维图形在R中,绘制二维图形主要有两个函数plot()和matplot()。plot()函数主要绘制标准的x-y图形,它是基于笛卡尔坐标。这个函数会将两个向量作为参数,第一个向量作为横轴的值,第二个向量作为纵轴的值。例如:> x=(0:100)*2*pi/100> y=sin(x)> plot(x,y)如果只将一个向量做为plot()函数的参数,则该向量的值将作为y轴的值,而x轴的值由R自动产生:> plot(y)matplot()函数将两个矩阵作为参数。一个矩阵的列参照另一个矩阵的相应列来绘制图形。在绘制同一个图时,两个矩阵的行数应该一样。如果行数不一样,行数较少的那个矩阵用缺失值(NA)来填充。第一个矩阵的值会用在横轴上。如果其中一个矩阵只有一个列,则绘制的所有图形都将用该列的值。每一队列所绘制的图形颜色不一样,编号会用来做为不同图点的图形符号。这些选项也可由用户自己定义,例如:col=和pach=,后面会介绍这些选项。在对图形添加多个点时,matplot()函数可以省去很多麻烦,不用一一设定每个point()语句。matplot()函数可以统一设置各点的格式,并自动选择合适的坐标轴范围,使图形中包含全部数据,例如:> y1=sin(x)> y2=cos(x)> y=cbind(y1,y2)> matplot(x,y)B. 符号、线与坐标轴风格的选项可以使用一些选项来制定R绘制的图形。在函数plot()和matplot()中,选项通常作为附加参数被调用。可选参数能以任意顺序输入,以逗号隔开。如果省略这些参数,它们大多会采用默认值,下面将更加系统地介绍这些选项。1、数字符号类型绘图时对数据点所用的符号可通过pch=选项来指定(pch意思是“plotting character”)。例如pch=1表示用圆圈绘制数据点。下图就是常用的符号和对应的数值代码。2、连接线类型如果线是用来连接数据点或者绘制曲线,则可用lty=选项来控制它的样式。一般的线类型和对应的数值代码如下图所示。另外,使用lty=选项和matplot()的其它选项时,可将这些选项的值组成一个向量,向量中的各元素会分别用到对应的图形上,使其具有不同的样式。例如:> matplot(x,y,type="l",lty=c(1,2),col="black"#Tips:我们可以看出来两个函数图分别用了线类型不同的两条线来绘制,col的设定可以保证两条线的颜色相同。3、曲线类型可用type=“”选项来指定不同的曲线类型。例如:type=“p”表示在绘制曲线时,只画点而不画连接线。常用的类型如下:p:只画点的符号而不画连接线。l:只画连接线而不画点的符号。o:既画点的符号,又画连接线。b:与o选项一样,只是连接线不会与点的符号接触。h:在每个点与横轴之间画一条垂直线。s:绘制“梯形”图,即先用水平直线,然后用竖线连接相邻点。S:同s相似,只是水平线和垂直线顺序相反。c:连接线里剔除掉点位置。4、坐标轴的限制选项xlim=和ylim=可分别用来限制横轴和纵轴的范围,例如,xlim=c(0,10)会让R只使用横轴值在0到10范围内的数据。如果数据超过此范围,就不会出现在绘制的图形中。5、刻度线在坐标轴上的刻度线由选项lab=和tcl=控制。lab=选项是一个向量,它有两个元素,第一个元素是横轴的刻度线数量,第二个选项是纵轴的刻度线数量。例如lab=(7,3)表示x轴被7个刻度线分成8个间隔;y轴被3个刻度线分成4个间隔。如果所指定的lab=选项不能使绘制的图形正常显示,R可能会重新用恰当的值来代替lab=选项的值。tcl=选项将一行文字的高度作为刻度线的长度。tcl的值为负数是表示刻度线在坐标轴外,为正数表示刻度线在坐标轴内。6、坐标轴标签在默认的情况下,横轴和纵轴的标签是绘图向量的名称。将标签通过xlab=“”和ylab=“”选项来修改,将所需的文本字符串放在引号中即可。例如:xlab=“time”,ylab=“population size”。7、不显示坐标轴有时图形不需要坐标轴会更好看些。不显示坐标轴的选项是axes=FALSE,不显示坐标轴标签的选项是ann=FALSE。8、字符和标签大小可用选项cex=来修改在默认情况下,cex指定的值为默认字符大小的倍数。cex的默认值为1。比如若cex=2,所绘制的字符为正常大小的2倍;cex=0.5,所绘制的字符是正常大小的一半。下面这些绘图选项也是通过类似的方式控制大小,即,都是参数值作为默认大小的倍数。cex.axis= 为刻度文本大小的倍数cex.lab= 为轴标签文本大小的倍数cex.main=为标题文本大小的倍数cex.sub= 为子标题文本大小的倍数lwd= 为所画线宽度的倍数9、字体族、字号和字样的参数font= 用于指定绘图使用的字体样式。1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体(以Adobe符号编码表示)font.axis= 坐标轴刻度文字的字体样式font.lab= 坐标轴标签(名称)的字体样式font.main= 标题的字体样式font.sub= 副标题的字体样式ps 字体磅值(1磅约为1/72英寸)。文本的最终大小为 ps*cexfamily 绘制文本时使用的字体族。标准的取值为serif(衬线)、sans(无衬线)和mono(等宽)C. 颜色在数据图形中颜色应该谨慎且有节制地使用。当使用颜色时,应突出重要的信息,而不能随意使用它。颜色会产生干扰,当图中的符号具有不同颜色时,眼睛会自动寻找不同颜色的含义。纯粹的装饰色彩会将人们的注意力从图形本身所要表达的信息引开。用彩色数据图形还会有一个不太重要但也不能忽略的问题:一小部分人是色盲,而这部分人的数量也不在少数。若要在绘图函数中使用彩色,可通过下面这些选项集来实现:col=用来指定plot()函数和 matplot()函数中数据符号和曲线的颜色,还有barplot()函数生成的条形图颜色;col.axis=坐标轴的颜色col.lab=坐标轴标签的颜色col.main=主标题颜色col.sub=副标题颜色fg= 图形的前景色bg= 图形的背景色颜色可通过代码值来指定。例如col=25会得到蓝色。在控制台执行colors()函数就可知R能识别657种颜色,为了方便起见,会列出657颜色名称,这些名称能被R识别。所以,col=“blue”与col=25是一样的效果。> colors()
[1] "white"
"aliceblue"
"antiquewhite"
[4] "antiquewhite1"
"antiquewhite2"
"antiquewhite3"
[7] "antiquewhite4"
"aquamarine"
"aquamarine1"
......
[652] "yellow"
"yellow1"
"yellow2"
[655] "yellow3"
"yellow4"
"yellowgreen" 当然有些时候我们需要在图形上绘制独立的点,线或者文本等,这些都不是绘图函数的参数,需要独立的函数来支撑,我们下一节就为大家来介绍这些。参考资料:1. 《R语言统计入门(第二版)》 人民邮电出版社
Peter Dalgaard著 2. 《R语言初学者指南》 人民邮电出版社
Brian Dennis著3. Vicky的小笔记本《blooming for you》by Vicky}

我要回帖

更多关于 R的花式特殊符号 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信