3D 顶点着色与Phong 反射模型

这篇具有很好参考价值的文章主要介绍了3D 顶点着色与Phong 反射模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Phong 反射模型有时被称为“Phong 照明”或“Phong 照明”。它由环境光照、漫反射(朗伯反射)、镜面反射三部分组成。

3D 顶点着色与Phong 反射模型

根据下面公式:渲染引擎用到的输入参数和贴图分别是:

输入参数: 高光指数:控制高光的聚集程度和形状; 环境光强度:控制周围环境光对物体的影响程度;漫反射光强度:控制漫反射光照在表面的亮度; 镜面反射光强度:控制高光的亮度;材质色彩:决定物体表面漫反射光的颜色。

 Phong 反射模型提供了一个方程式,用于计算表面上每个点的光照,I_p:

3D 顶点着色与Phong 反射模型

 第一部分代表环境光项。在GLSL代码中,可以表示为:

float k_a = 0.6; // a value of our choice, typically between zero and one
vec3 i_a = vec3(0.7, 0.7, 0); // a color of our choice

vec3 ambient = k_a * i_a;

第二部分表示漫反射项。在GLSL代码中,可以表示为:

vec3 p = ro + rd * d; // point on surface found by ray marching
vec3 N = calcNormal(p); // surface normal
vec3 lightPosition = vec3(1, 1, 1);
vec3 L = normalize(lightPosition - p);

float k_d = 0.5; // a value of our choice, typically between zero and one
vec3 dotLN = dot(L, N);
vec3 i_d = vec3(0.7, 0.5, 0); // a color of our choice

vec3 diffuse = k_d * dotLN * i_d;

#这个 i_d我认为是白光的光强,dotLN 是cos投影系数

 3D 顶点着色与Phong 反射模型

3D 顶点着色与Phong 反射模型

3D 顶点着色与Phong 反射模型

3D 顶点着色与Phong 反射模型

3D 顶点的颜色是由UV纹理和Phong反射模型和光照决定的:

3D 顶点着色与Phong 反射模型

 3D 顶点着色与Phong 反射模型

3D 顶点着色与Phong 反射模型

 获取α值的常用方法有:1. 设定一个固定的值,比如0.5。这种方法简单,但是不能很好地拟合不同材料的高光特性。2. 根据材质类型设定值。例如,金属材质α=0.8,塑料α=0.5等。这种方法可以粗略模拟不同材质,但是无法精确拟合真实材料。3. 基于物理计算获取。考虑入射光的角度、折射率等参数计算高光的强度,从而确定α。这种方法理论上可以模拟真实材质,但是计算复杂,不太实用。4. 数据驱动获取。利用测量或合成的图像数据,通过反向渲染或机器学习算法估计最合适的α值。这种数据驱动方法可以较好地拟合真实材质,目前较为流行。文章来源地址https://www.toymoban.com/news/detail-489883.html

到了这里,关于3D 顶点着色与Phong 反射模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenGL ES 2.0 for Android教程(二):定义顶点和着色器

    文章传送门 OpenGL ES 2.0 for Android教程(一) OpenGL ES 2.0 for Android教程(三) OpenGL ES 2.0 for Android教程(四) OpenGL ES 2.0 for Android教程(五) OpenGL ES 2.0 for Android教程(六) OpenGL ES 2.0 for Android教程(七) OpenGL ES 2.0 for Android教程(八) OpenGL ES 2.0 for Android教程(九) 本章介绍我们

    2023年04月14日
    浏览(28)
  • 【Filament】自定义Blinn Phong光照模型

    ​ 光照元素主要有 环境光 (ambient)、 漫反射光 (diffuse)、 镜面反射光 (specular),基础的光照模型主要有兰伯特(Lambert)光照模型、冯氏(Phong)光照模型和改进的冯氏(Blinn Phong)光照模型。 ​ Lambert 光照模型只包含漫反射光的计算,Phong 光照模型和 Blinn Phong 光照模

    2024年03月09日
    浏览(18)
  • Direct3D 12——计算着色器——计算着色器概念

    计算着色器虽然是一种可编程的着色器,但Direct3D并没有将它直接归为渲染流水线中的一部分。虽然如此,但位于流水线之外的计算着色器却可以读写GPU资源。从本质上来说,计算着 色器能够使我们访问GPU来实现数据并行算法,而不必渲染出任何图形。由于计算着色器是Dir

    2024年02月03日
    浏览(30)
  • DirectX3D 虚拟现实项目 三维物体的光照及着色(五个不同着色效果的旋转茶壶)

    本篇文章是中国农业大学虚拟现实课程的一次作业内容,需要对五个茶壶模型使用不同的光照进行着色和渲染,然后旋转展示。 本人的代码也是在其他人的代码的基础上修改来的,主要用于服务下一届,没有商业用途,侵删。 代码包括CPP文件代码和FX(着色器文件)代码两部

    2024年02月05日
    浏览(40)
  • Unity3D:内置着色器的用途和性能

    推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 Unity 中的着色器是通过__材质__来使用的,材质本质上结合了着色器代码与纹理等参数。此处提供了关于着色器/材质关系的深入说明。 当选择材质本身或选择一个使用材质的__游戏对象__时,材质属性将显

    2024年02月06日
    浏览(31)
  • Open3D-GUI系列教程(五)鼠标事件(拾取顶点)

    这里实现一下鼠标拾取顶点的操作。open3d本身提供了交互选点的操作 gui.SceneWidget.Controls.PICK_POINTS ,但是出于某些超出我认知范围的因素,这玩意儿根本不起作用。所以只能另辟蹊径。 最新的open3d 0.15.1好像修复了这个bug,我试了一下好像还不行,或许是我真的不会用。 open

    2024年02月02日
    浏览(33)
  • Unity引擎修改模型顶点色的工具

    大家好,我是阿赵。   之前分享过怎样通过MaxScript在3DsMax里面修改模型的顶点色。不过由于很多时候顶点色的编辑需要根据在游戏引擎里面的实际情况和shader的情况来动态调整,所以如果能在引擎里面直接修改模型的顶点色,将会方便很多。于是我写了下面这个在Unity引擎

    2024年02月11日
    浏览(32)
  • Unreal Niagara粒子入门3 - 根据模型顶点发射粒子

    在一些游戏中经常会出现根据模型顶点位置发射粒子的情况,这次就来实现一下该效果: 首先从空粒子发射器开始创建,右键NiagaraSystem-Create empty system,打开粒子系统后再右键Add empty emitter: 加入发射器必须的模块,注意发射器使用Spawn Burst Instantaneous,因为是只发射一次:

    2024年02月07日
    浏览(22)
  • 让AI臣服,而不是被它替代!让ChatGPT为我们编写Unity3d Shaderlab的着色器(shader)

    ChatGPT的火热大家应该都有目共睹,文案工作者、翻译工作者和画师等各种行业都在被嘲即将失业。不光是这些岗位的员工,作为资深社畜程序猿也能感受到会受到冲击。网上很多人都在发ChatGPT写的代码,并开始大肆宣扬AI要取代程序员了,今天测一测使用ChatGPT来生成一些代码,

    2023年04月23日
    浏览(34)
  • 【Unity】程序创建Mesh(一)Mesh网格、代码创建模型、顶点信息、三角形信息、MeshFilter、MeshRenderer

    Mesh在Unity中是一个核心的组件,被称为网格组件,它主要用于表示3D几何体的数据结构。Mesh由顶点、三角形面以及可选的材质等组成,这些元素共同构建了3D模型的基础。 在Unity中,Mesh的功能非常强大且多样化。它不仅可以用来创建3D模型、绘制几何体、渲染场景,还支持多

    2024年04月15日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包