位置: 编程技术 - 正文

Unity3D的着色器介绍(一)—软渲染和着色器原理(unity3d颜色)

编辑:rootadmin
由于讲图形渲染这样的东西比较抽象,而且结合三维数学方面的知识比较多,我自己的理解也不一定正确,所以先试写一篇看看。如果有什么意见,请在评论里指出。 一开始先讲些理论性的东西吧。要讲着色器,我觉得很有必要先说一下着色器是怎样工作的。在不知道什么是着色器的前提之下,也没有任何的三维引擎的帮助,假如我们需要渲染显示下面一个立方体,我们需要怎样做呢? 如果只有得到这个立方体的8个顶点的坐标,没有其他任何的条件,我们是无法渲染显示的,因为一个存在于空间中的三维物体,我们从不同的角度去观察,看到的样子是不一样的,比如我们从camera1和camera2两个不同的位置去观察这个cube:会得到不同的结果: 这是因为我们我们在不同的角度观察同一个物体时,物体投影在我们的视网膜上的点的位置是不一样的。(由于只是介绍原理, 而不打算在这里介绍一个引擎的写法,所以我只会大概讲一下实现的过程,而具体的算法不在此讨论范围。)从这里可以得知,渲染一个模型的形状,必要的条件是两个:1、模型各个点在世界空间的坐标2、我们观察的角度。更多精彩内容请访问【狗刨学习网】 我们撇开整个模型,只观察由P1、P3、P4组成的三角形,通过一定的算法,我们可以计算出三个点分别投影在Camera1和Camera2上面的坐标。 当计算出了这三个点在投影上面的坐标后,基本上我们就可以把模型的位置给渲染出来了,比如P1、P3、P4构成的三角形,我们只需要把它填满红色,就形成了三维物体在我们的&#;中的渲染位置了。由于我们现在所用的多边形渲染方式都是以渲染三角形为基础的,所以我们能渲染一个三角形,就能同理类推,把整个三维模型渲染出来。一般来说,我们的三维模型都不止是纯颜色的,比如这个立方体我们可以贴上一张汽车的贴图。 还是留意P1、P3、P4组成的三角形。在确定了三个点在投影的位置之后,三角形范围内的像素点应该显示怎样的内容?这是我们渲染需要考虑的第二个问题。 通常关于贴图类型的显示,我们需要知道这张贴图的某个位置是对应着渲染的三角形的某个位置。这个位置的对应关系,是通过UV坐标来表达的。通过UV坐标,我们就能知道从P1到P3范围的像素点,是从贴图的某个位置到某个位置,然后按照一定的比例缩放,从图片上取得了该像素点应该显示的颜色。 通过上面的2个步骤,我们首先知道了怎样确定模型的点在投影面上的位置,然后知道了怎样确定由点组成的三角形内的每个像素点的颜色。到了这一步,实际上整个三维模型已经被渲染出来了。最后一个问题是,通过像素点离投影面的距离,求出面之间的叠加关系,这是深度排序的问题,暂时不在这里讨论。以上整个过程,就是所谓的软渲染。在没有任何三维引擎的帮助下,我们就可以把一个三维模型从一堆数据里面显示出来。至于三维引擎里面的动画渲染,其实步骤就是如下:每次进入一帧:1、清除画布,把上一帧留下的画面清除;2、求出所有点在投影面的坐标;3、求出每个像素的颜色&#;;4、渲染出来。结束渲染 说了这么多软渲染的原理,有些朋友会说,这究竟和着色器有什么关系呢?其实这个过程,正是着色器的工作过程。一般来说,着色器会分为顶点着色器和片段着色器两个部分。顶点着色器要做的事情,其实就是第一个步骤,求出各个顶点在投影面的坐标。所以传进去的&#;需要有顶点的三维坐标,还需要有摄像机的位移旋转矩阵。片段着色器需要做的事情,就是第二个步骤,通过给出的数据,结合从顶点着色器得到的坐标&#;,计算出每一个像素点应该显示的颜色&#;。所以传进去的&#;,会默认包括了顶点程序的坐标,然后我们给予的贴图信息、颜色信息和UV坐标信息。片段着色器是针对于每个像素点的,所以片段着色器的输出,就是该像素点应该显示的颜色&#;。最后提交给显卡,改变屏幕上的每一个像素点的颜色,得到我们想要的画面。 于是,我们就可以通过编写顶点着色器程序,通过一定的方式去改变顶点在投影面的坐标,让模型变形;或者通过编写片段着色器程序,让模型表现出来的颜色根据我们的需要而改变。 了解了着色器的整个工作过程之后,应该会觉得实际上着色器也不是一个非常神秘的东西吧?

推荐整理分享Unity3D的着色器介绍(一)—软渲染和着色器原理(unity3d颜色),希望有所帮助,仅作参考,欢迎阅读内容。

Unity3D的着色器介绍(一)—软渲染和着色器原理(unity3d颜色)

文章相关热门搜索词:unity中的色彩空间设置,unity调色插件,unity中的色彩空间设置,unity 3d 内建着色器源码剖析,unity中的色彩空间设置,unity调色插件,unity3d着色器在哪,unity3d着色器在哪,内容如对您有帮助,希望把文章链接给更多的朋友!

vs 提示图标的含义 【狗刨学习网】ClassViewandObjectBrowserIcons类视图与对象浏览器中图标NamespaceMethodorFunctionClassOperatorInterfacePropertyStructureFieldorVariableUnionEventEnumConstantTypeDefEnumI

基于Unity3D引擎制作大地图 基于Unity3D引擎制作大地图1.下载Unity3D:

unity3d游戏开发之第一人称射击游戏 简介这个教程中,我们详细了解下如何制作一个简单的第一人称射击游戏(FPS)。其中将介绍一些基本的3D游戏编程的概念和一些关于怎样如游戏程序员

标签: unity3d颜色

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

上一篇:unity自带寻路Navmesh入门教程(三)(unityai寻路)

下一篇:vs 提示图标的含义(vs提示图标的含义)

  • 个人开发选项
  • 车船税税金及附加计入管理费用嘛
  • 长期股权投资的账面价值怎么计算
  • 成本结转不规范会受到什么罚款
  • 拿工资要开发票,发票去哪儿开?
  • 计提增值税及附加税费怎么算
  • 跨年增值税专用发票没有认证,需要开红字信息表吗
  • 广告发布费属于什么征税项目
  • 内账应收应付算利润吗
  • 专用发票不抵扣怎么做分录
  • 增值税专票未认证丢失怎么办
  • 民间非营利组织会计报表
  • 材料加工计入什么科目
  • 170平方的房子装修费用
  • 公司如何持续发展
  • 个人如何开具增值税普票
  • 劳务费个人所得税税率表2023最新
  • 企业所得税是否有利于调节产业结构
  • 个人借款取得的利息收入要交税吗
  • i7笔记本cpu性能天梯图
  • win 11 中文
  • 苹果手机id被锁定什么意思
  • 债权人和债务人是什么意思
  • 磁盘碎片指的是磁盘因为长期使用
  • vue+cesium怎么实现地图的加载
  • PHP:oci_field_name()的用法_Oracle函数
  • PHP:pg_fetch_assoc()的用法_PostgreSQL函数
  • win10电源高性能被删了
  • hpptd.exe
  • 苏格兰高地牛一个萌萌哒的合集
  • 货物运输税费
  • 个人转让公司限额多少
  • 什么是webrip
  • 应付职工薪酬是负数是什么意思
  • github账号在哪里看
  • photo-sphere-viewer中文文档
  • ai形成生成器工具怎么用
  • php公众号推送完整示例
  • 企业办理退税,税务机关要检查吗
  • 票据带息和不带息
  • 前端面试题目100及最佳答案
  • php框架是干什么的
  • mongodb聚合函数详解
  • 第一季度利润表年初余额
  • 公户网银丢了
  • SQL Server 2008 r2 完全卸载方法分享
  • 建筑企业分项目信息采集表怎么填
  • 期货风险准备金计提比例
  • 普通发票领多了怎么处理
  • 股东多缴投资款处理
  • 投资性房地产在资产负债表哪个科目
  • 增值税劳务费税率是多少
  • 银行存款一直没有记账怎么调整
  • 房地产公司退房款怎么做账
  • 企业进项税额大于销项税额
  • 购买土地的流程
  • 门面转让费做账怎么做
  • 居民企业只就其境内全部所得纳税
  • 高温补贴发放管理制度
  • 财务费用贷方余额怎么结转本年利润
  • 公司对员工罚款怎么处理
  • 如何解绑企业微信绑定的邮箱
  • mysql的json数据类型
  • window10预览在哪里找
  • win7删除通知区域图标
  • ubuntuiso
  • Centos 5.5 php5.1.2升级到php5.2.6的方法
  • win10 edge浏览器崩溃
  • win7开机黑屏只有一个鼠标箭头
  • win8怎么做win7系统
  • win8声音小怎么解决
  • bat ping批处理
  • js调用wsdl接口
  • jquery删除所有class
  • jquery插件使用教程
  • jquery示例
  • unity random.value
  • 税控发票开票软件密码怎么修改?
  • 陕西省附加税减免政策
  • 衰竭期矿山开采的矿产品减征幅度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设