zoukankan      html  css  js  c++  java
  • u3d shader学习笔记1

    促使我学习SHADER的重要原因是希望深入理解3D渲染的机制,在此基础上可以灵活达到某种效果与性能的平衡,开发出具有良好体验的VR应用。

    因为VR应用体验的好坏,直接由游戏的帧率决定,而游戏的帧率则受到渲染一帧画面所花时间的影响,因此如何提升渲染时间,而又可以得到期望的效果,必须要对SHADER或者说渲染机制有深入的理解。

    一、在U3D中,shader是什么?shader即“着色器”,我们之所以能够看到屏幕上丰富多彩的3D画面,正是得益于它。U3D中与shader相关的概念以及它们同shader间的关系如下图所示:

    当你闭上眼睛,或是关掉房间中的灯时,你前面的物体都看不见了,但是,这个物体仍然是在那里的,它不会因为你看不见它而消失,从这个角度来说,物体即具有它的自有属性,正如上图中的meshfilter部份,这个物体有自身的“骨架”,同时,这个物体也有自身的表面材质,因此,可以说,物体的自有属性即是“骨架”+“表面材质”。

    正是由于不同的物体都有各自的“骨架”和“表面材质”,这样在我们打开灯光时,我们才会看到不同的物体。

    在我们观察周围的世界时,我们会看到很多现像:

    1、同一个场景下,当光线越强时,物体也越明亮,当光线颜色发生变化时,我们看到的物体表面颜色也发生了变化;

    2、同一个场景下,同一盏灯下面,有些物体表面是光滑的,有明显的高光,而有些物体表面是粗糙的,看起来很柔和;

    等等多种不同的视觉现像。。。

    那么这些我们最终看到的画面,则是在光线照射到物体表面后反射光线进我们的眼睛造成的。具体来说就是物体上每一个点的反射光进入我们的眼睛,经由我们的大脑的综合处理,就形成了一个物体的形像。

    其实综上所述,可以认为:从微观上看,计算出物体上的每一个点的反射光线的颜色和强弱就是shader要做的事情

  • 相关阅读:
    Navicat 导入数据报错 --- 1153
    VS2015创建的Asp.net WebApi默认项目在CentOS7+Mono4.2.2+jexus5.8运行不起来的解决方案
    CentOS 6.5安装MySQL中文乱码问题解决
    Centos上Apache重启,mysql重启, nginx 重启方法
    linux自己带的apache重新启动
    CentOS Linux系统下更改Apache默认网站目录
    C语言王国探秘一
    《JavaScript权威指南》学习笔记 第一天。
    《JavaScript权威指南》学习笔记 第二天 下好一盘大棋
    Js里面的强制类型转换
  • 原文地址:https://www.cnblogs.com/donghua/p/5040477.html
Copyright © 2011-2022 走看看