位置: 编程技术 - 正文

Unity3d中BlinnPhong光照模型注解(unity3d spine)

编辑:rootadmin
【狗刨学习网】/** 版本:0.1 最后修改:-- 撰写:李现民 Unity3D中主要用到的shader(着色器)有三种,除了常规的vertex shader与fragment shader外,还有一类称为surface shader。Unity3D自带文档中关于surface shader的介绍非常少,除了有一些示例外,surface shader的结构定义,调用时机,参数的含义都被略了,对我等初学者而言,这无疑加大了学习难度。 前两天在网上查相关资料时,偶然发现了一篇文章,从里面提到的代码框架看,surface shader的主方法原来是在fragment shader中调用的,使用一个inout类型SurfaceOutput参数。 ... ers-one-year-later/ 下面着重分析一下surface shader中是如何使用BlinnPhong光照模型的,为以后写代码做铺垫。源文件取自Unity3D官网下载的builtin_shaders, 源文件名为Normal-Glossy.shader,描述了最基本的镜面反射是如何设计的**/Shader "Specular" { Properties { // 主色调,用于定义物体的基色 _Color ("Main Color", Color) = (1,1,1,1) // 高光颜色,如果使用BlinnPhong光照模型,则定义高光时必须命名为_SpecColor,并且,只有变量定义,在surface shader中看不到是在哪里使用的,使用该变量的地方被隐藏了 _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1) // 材质的光泽度,反映物体表面的光泽程度,又叫高光指数,定义范围(0, 1]之间,其&#;越大,反射光越集中 _Shininess ("Shininess", Range (0., 1)) = 0. // 主纹理,用于定义物体基色 _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {} } SubShader { // 绘制类型,只是用于Replaced Shaders的标记,并不是必须的。 // 如果需要定义对象的绘制顺序,请使用Queue标记 Tags { "RenderType"="Opaque" } LOD CGPROGRAM // 定义着色器类型为surface,着色器入口方法为surf(),光照模型为BlinnPhong #pragma surface surf BlinnPhong sampler2D _MainTex; fixed4 _Color; half _Shininess; struct Input { // Unity3D中shader的默认规则,纹理定义前面加uv前缀代表是对应的纹理坐标 float2 uv_MainTex; }; void surf (Input input, inout SurfaceOutput output) { // 取主纹理的对应当前像素点的&#; fixed4 tex = tex2D(_MainTex, input.uv_MainTex); // Albedo反照率,即物体反射光的数量与外来光数量的比&#;。 // Albedo = 主纹理 x 主色调,反映了物体的基色,与任何光相关的信息(比如diffuse, shiness等)无关 output.Albedo = tex.rgb * _Color.rgb; // Gloss光滑度[0, 1],用于控制反射的模糊程度,&#;越大,高光反射越清晰,反之则越模糊。 // 光滑度的“滑”是面的概念,代表物体整体的光滑程度 // 比如说,同样一块金属,在它生锈的过程中,其反射就会慢慢变弱,可以通过Gloss&#;控制 // 实际上它是针对高光计算结果的附加系数 output.Gloss = tex.a; // Alpha,不透明度[0, 1]:Alpha=0,代表物体完全透明;Alpha=1,代表物体完全不透明 output.Alpha = tex.a * _Color.a; // Shininess光泽度[0, 1],又叫高光指数或镜面反射指数,注意,它在SurfaceOutput结构中的命名(Specular)很容易让人误解为它是高光强度,其实不然,它是高光指数 // 光泽度的“泽”是点的概念,代表物体某个高光点的光泽程度 output.Specular = _Shininess; } ENDCG } // 如果当前GPU不支持本shader,默认使用VertexLit Fallback "VertexLit"}声明:此篇文档时来自于【狗刨学习网】社区,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。更多精彩内容:www.gopedu.com

推荐整理分享Unity3d中BlinnPhong光照模型注解(unity3d spine),希望有所帮助,仅作参考,欢迎阅读内容。

Unity3d中BlinnPhong光照模型注解(unity3d spine)

文章相关热门搜索词:unity3d hub,unity hob,unity linq,unity hinge joint,unity hinge joint,unity3d inspector,unity linq,unity3d inspector,内容如对您有帮助,希望把文章链接给更多的朋友!

unity3d CarWaypoints插件 【狗刨学习网】编写初衷:1、网上没有现成的好用的waypoints插件2、自己在做一个赛车游戏,如果没有这款插件的话在制作游戏的过程中会被累成狗3、

全面理解 Unity UI 系统 【狗刨学习网】随着Unity4.6发布,新UI系统终于与大家见面了。RectTransformUnityUI系统使用RectTransform实现基本的布局和层次控制。RectTransform继承于Transform,

你知道Unity IoC Container是如何创建对象的吗? 【狗刨学习网】Unity是微软PP推出的一个开源的IoC框架,最新的官方版本是2.0。Unity之前的版本建立在一个称为ObjectBuild的组件上,熟悉EnterLib的读者,相

标签: unity3d spine

本文链接地址:https://www.jiuchutong.com/biancheng/380229.html 转载请保留说明!

上一篇:Unity3D修改模型的网格数据(unity怎么替换模型位置)

下一篇:unity3d CarWaypoints插件

  • 自然人税收管理系统残疾人申报
  • 价外税和价内税的理解
  • 个人出租如何交税
  • 履约保证金打到哪个账户
  • 专利没有资本化成本如何入账
  • 对外投资固定资产的账务处理
  • 零星采购范围
  • 建筑公司核定征收所得税怎么算
  • 累计所得税前净现金流量计算公式为
  • 专用发票上的码头堆存费等进项税可否抵扣?
  • 公司房产出租租金如何开票?
  • 一般纳税人提供服务税率
  • 海运费需要代扣代缴吗
  • 增值税普通发票几个点
  • 开票码必须输入吗
  • 文化事业建设费的征收范围
  • 销货成本销货成本是什么类账户
  • 退进项税留抵是什么意思
  • 支付广告费要交增值税吗
  • 企业车辆保险费要按什么交印花税的
  • 物流公司进项票多了,可以帮人开票吗
  • 投资性房地产公允价值模式账务处理
  • 票据贴现业务的风险
  • 小企业会计准则成本核算方法选什么
  • 代收代付快递货款需要发票吗,中间差额服务费怎么开票?
  • 苹果se和华为p9哪个好
  • 投资收益或亏损影响营业利润吗
  • 未分配利润可留待以后年度进行分配的当年结余利润
  • 零代码开发工具
  • 房产产权置换
  • 应纳税所得税计算公式
  • 秘鲁亚马逊木业有限公司招聘
  • 出口货物如何开票入账
  • 化妆品与药品
  • 生产企业免抵退税实例
  • 单位缴费基数申报提交了能改吗
  • SE注意力机制加在什么位置
  • vue clonedeep
  • windows7/windows10/windows11最强Audacity音频编辑播放器软件,免费下载
  • 原材料卖出去会计分录
  • 所得税汇算清缴调整项目
  • mysql配置文件my.ini如何创建
  • 处置固定资产增值税收入与企业所得税收入不一致
  • 建筑劳务公司的税率是多少
  • 减免所得税额怎么做分录
  • 印花税缴纳时间点
  • 公司给买员工保险
  • 车间拆除施工方案
  • 公允价值变动损益在利润表哪里
  • 以前年度多结转了成本,可以不调回了今年少结转吗
  • 没收到发票也可以入账吗
  • 固定资产报废处理中,最终的净损益应作为
  • 选用劳务派遣人员
  • 赠送商品需要开发票吗
  • 免费品尝活动广告语
  • 弥补亏损怎么做账
  • 废旧物资收购发票政策2018
  • 文化事业建设费逾期未申报怎么办
  • 审计真实性认定
  • 税务登记证办理流程
  • windows server 2016 自动登录
  • 鼠标右键一直锁定一个应用
  • linux系统软件包安装
  • linux就该这么
  • vs图片简单
  • linux diy
  • java如何自定义函数
  • unity中国代理
  • jQuery使用ajax方法解析返回的json数据功能示例
  • 全国哀悼日的意义
  • javascript ES6 新增了let命令使用介绍
  • shell脚本-le
  • python3 bytes类型
  • 【Android】利用Notification操作设备的通知栏
  • js阻止浏览器后退
  • 让你略表情包
  • 农产品核定管理办法最新
  • 80491232税务申报代码
  • 退契税可以不用本人银行卡吗
  • 怎样在网上申报税务流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设