Shader 学习笔记 20151031

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

Segment 1 阅读

阅读了Unity Shaders and Effects Cookboot的 Custom light model一节。(page 17)

阅读了Unity online manual关于 Custom light model两段文章
http://docs.unity3d.com/Manual/SL-SurfaceShaderLighting.html
http://docs.unity3d.com/Manual/SL-SurfaceShaderLightingExamples.html

阅读了博文 【Unity Shaders】初探Surface Shader背后的机制
http://blog.csdn.net/candycat1992/article/details/39994049

阅读了博文【Shader拓展】Illustrative Rendering in Team Fortress 2
http://blog.csdn.net/candycat1992/article/details/37696187


前两天阅读完了《GPU 编程与CG 语言之阳春白雪下里巴人.pdf》,写的很好,通俗易懂。

前两天阅读了《理解矩阵(孟岩)(全)》,这本简直神了,告诉了我们什么是数学的直觉意识,其中针对矩阵代表运动(变换),矩阵本身就是坐标系,为何空间点的坐标系变换需要齐次坐标(只需要一次矩阵乘法),空间的本质是容纳运动(变换)等等,这些论述极为精彩。
http://www.docin.com/p-201848123.html

Segment 2 理解

  • 理解了Unity的渲染流程。特别是Unity里面的几个关键处理同顶点着色器片段着色器的关系。这一段写法暗含深意 #pragma surface surfaceFunction lightModel [optionalparams],#pragma surface surf BasicDiffuse vertex:vert finalcolor:final noforwardadd,其意思就是,如果你不玩一些特别的花样,其实就是在片段着色器里面先渲染surfaceFunction然后再搞lighting model.
    NA

  • 理解了Unity Shader的运行机制

    1,正常程序运行总是需要一个流程,对常见的C来说,就是顺序的,见到什么Call什么。但是对于Unity Shader来说,他的运行顺序是默认的(见上图),所以如果不清楚默认的程序流程,读code就很头疼。

    2,正常程序在传递数据的时候,要么把值直接塞进去(通过定义一个临时变量的方式),要么传递指针进去,但是Unity Shader不,它不太允许/建议你建立自己定义的临时变量,你能用的就是规定死的一些类型。譬如:SurfaceOutput,或者类似下面这样一个自定义的struct,所谓自定义也是和顶点着色器/片段着色器息息相关的。
    这个例子里面定义的就是Texture的UV坐标以及顶点颜色这两个。

    <textarea readonly="readonly" name="code" class="c++">
        struct Input  
                    {  
                        float2 uv_RampTex;  
                        float4 vertColor;   
                    };
    </textarea>

    为啥会是这样?规定的这么死?原因就是GPU都是通过寄存器直接传递的,并且都是硬连的,不是那种在内存里面想咋传就咋传的方式。


  • 通过对Teamfortress博文的拜读,了解到了一个shader eng是如何同artist一起工作的,以及shader eng主要做什么/artist主要做什么。

    但很初步,以后还需要更细致的摸索、体会。


  • 初步识别一些简单的光照识别算法。譬如halfLambert的算法。
    其核心算法是让暗的地方不要那么暗,以便增强一个物体的非光照面的细节,但是效果上减弱了明暗对比。
    可能HDR会更好?
如何从Zbrush里面抓MatCap Material做成Texuture,好做lit sphere shading 引子Zbrush还是很吊的,很多艺术家去做渲染材质的工作,因为也就有了他的MatCap Material Lib http://pixologic.com/zbrush/downloadcenter/library/ 这个Lib简直爆炸,很多各种材质效果让你玩。 因此萌生了一个想法,如何把它的这些材质用在Unity的lit sphere shading里面。道理简述概念还是比较简单的,首先Zb 阅读详情

相关推荐

BRDF 材质贴图

Segment 0 关键词 BRDF 材质,一种材质纹理,用来贴反射光的。 PBS physical based shading, 基于物理成像算法。 microfacet model,一种表面模型,是diffuse加上反射,反射一般由微表面分布函数D,反射系数函数F,自遮挡G组成。请注意这个模型是对每一个pixel都成立的。 uv的界限。在Unity里面,也不知道是我操作不好还是怎样,一旦UV在0

mconreally的博客 4149

GPU编程与CG语言之阳春白雪下里巴人.pdf 分享

GPU编程与CG语言之阳春白雪下里巴人.pdf 分享 受收费的免费资源之苦,特寻找资源并共享,学习路上共勉。 链接: https://pan.baidu.com/s/1bmJTfiqFi68xR3svU6Akzw 提取码: 73ff ...

Koumei's Blog 5940

GPU 编程与CG 语言之阳春白雪下里巴人.pdf

GPU 编程与CG 语言之阳春白雪下里巴人 对渲染有很有帮助的一本书

【亲测免费】 GPU编程与CG语言之阳春白雪下里巴人.pdf 分享

GPU编程与CG语言之阳春白雪下里巴人.pdf 分享 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供了一份名为《GPU编程与CG语言之阳春白雪下里巴人》的PDF资源文件。该文件是一本关于GPU编程和CG语言的详细指南,适合初学者和进阶学习者使用。 资源内容 该PDF文件涵盖了以下主要内容: GPU编程的基础概念 CG语言的核心技术 从基础到高级的各个方面 实际...

gitblog_06539的博客 531

shader 学习书籍

Unity Shader入门精要 GPU编程与CG语言之阳春白雪下里巴人 链接: https://pan.baidu.com/s/1K0V7XAobpEUnXrbaF7B1zw 提取码: b4as

qq_30058057的博客 797

Shader学习随笔(二)

目录 1、初尝Shader--重点梳理 1.1 漫反射光照模型 1.2 高光反射光照模型 1.3 单张纹理 1.4 凹凸纹理 1.5 渐变纹理(类似卡通风格) 1.6遮罩纹理 2、Shader透明--重点梳理 2.1 渲染顺序基本概念 2.2 透明度测试 2.3 透明度混合 2.4 渲染顺序问题处理--Unity中 1、初尝Shader--重点梳理 在《Shader入门精要》一书中,初级篇包含:标准光照模型,漫反射光照模型,高光反射光照模型,单张纹理,凹凸映...

光的博客 1675

Chapter10 高级纹理——Shader入门精要学习笔记

利用 Camera.RenderToCubemap 函数来实现(可以把任意位置观察到的场景图像存储到6张图像中,创建Cubemap)使用一张HDR图像(类似立方体展开图的交叉布局、全景布局等),把该纹理的 Texture Type 设置为 Cubemap 即可。创建一个 Cubemap ,然后把6张纹理拖拽到面板中。

weixin_70073176的博客 1180

Shader学习笔记Day00

WebGLShader - Web API |MDN 系列......其余待贴。

weixin_63883707的博客 1037

GPU编程与CG语言之阳春白雪下里巴人

CG的数据结构 结构体: <1.如果结构体的一个成员函数使用了成员变量,则该成员变量要声明在前. <2.语义类型( Binding Semantics),所谓绑定语义类型是为了与宿主环境进行数据交换的时候识别不同数据类型的 <3.类型转换 类型转换可以是强制类型转换,也可以是隐式转换,如果是后者,则数据类型从低精度向高精度转换。 float a = 1.0; hal...

qq_35433081的博客 2355

Unity Shader学习笔记(五)

ShaderLab中属性的类型和CG中变量的类型之间的匹配关系如图:     uniform关键字: uniform fixed4 _Color;     uniform 关键字是CG中修饰变量和参数的一种修饰词,它仅仅用于提供一些关于该变量的初始值是如何指定和存储的相关信息(这和其他一些图像编程接口中的uniform关键词的作用不太一样)。在UnityShader中,uni

zjw1349547081的专栏 4120

shader学习笔记(一)

OpenGL DirectX OpenGL 使用GLSL编写shader DirectX 使用HLSL编写shader 英伟达 使用CG编写shder shader分类 1.表面着色器 surface shader 2.顶点/片元着色器 Vertex/Fragment shader 3.固定函数着色器 Fixed Function shader shader基本代码 Shader "ym/ymshader01"{//此处是指定shader的名字,不要求跟文件名一致,且在选择shader时会按照这个路径

java能飞翔 508

Shader学习笔记(实战篇)

实战篇

weixin_42050609的博客 544

GPU 编程与CG 语言之阳春白雪下里巴人——CG学习读书笔记之数学函数(之一)。

1、abs(x) 取得输入参数的绝对值。 2、acos(x) 反余切函数,为cos(x)的反函数,原来得到Y作为输入,的到对应的角度。 (其实只要记得作用是:得到角度,值域为[0,π],输入范围为[-1, 1],(并且是减函数)就是输入越大得到角度越小) 3、all(x) 返回值为Bool类型,输入参数全部不等于0才返回true。 &&(并且) 运算。 4、any(x) 返回值为Bool类

u013480185的博客 1646

shader 笔记(一)

转载于:https://www.cnblogs.com/lifesteven/p/5611677.html

weixin_30767921的博客 284

Shader笔记

Shader 1.Shader(着色器) 最终目的在于生成或者是渲染一张二维纹理。 2渲染的流水线 应用阶段:把数据加载到显存;设置渲染状态;调用Draw Call。 3.GPU的流水线 顶点着色器:完全可编程的,实现顶点的空间变换、顶点着色等功能。 曲面细分着色器:可选的,用于细分图元。 几何着色器:可选,用于执行逐图元的着色操作,或者产生更多的图元。 裁剪:可配置的,...

cathy_2017的博客 221
下一篇: Shader 学习笔记 20151102
mconreally
博客等级 码龄17年 5粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值