光照模型及cg实现

CG8-v2.0-光照着色 一. 任务描述本关任务 (1) 理解均匀着色算法; (2) 将main函数中的空白部分参数补充完整。输入 (1) 代码将自动输入一个人像模型,具体模型如下图: test (2) 将模型的所有点坐标沿Y轴逆时针方向旋转15度; (3) 进行观察变换,观察点坐标为(0, 0, 4),中心点坐标为(0,0,0),向上的矢量为(0, 1, 0); (4) 在triangle函数中输入参数,使模型的每一个三角面片颜色随机生成,其中基础的颜色为PNGColor(255, 255, 255, 255),随机数用rand( 阅读详情

 

经典光照模型(illumination model)

物体表面光照颜色由入射光、物体材质,以及材质和光的交互规律共同决定。

由于环境光给予物体各个点的光照强度相同,且没有方向之分,所以在只有环境光的情况下,同一物体各点的明暗程度均一样。

 

环境光是对光照现象的最简单抽象,局限性很大。它仅能描述光线在空间中无方向并均匀散布时的状态。

 

还有一种是平行光,即光线都从同一个方向照射。通过模拟方向光和物体表面的交互模式,可以渲染出具有高真实感(明暗变化、镜面反射等)的三维场景。

 

漫反射与Lambert 模型

 

粗糙的物体表面向各个方向等强度地反射光,这种等同地向各个方向散射的现象称为光的漫反射(diffuse reflection)

 

对于仅暴露在环境光下的朗伯反射体,可以用公式(9-1)表示某点处漫反射的光强: 

 

其中Ia表示环境光强度(简称光强),dk(0<dk<1)为材质对环境光的反射系数,Iam是漫反射体与环境光交互反射的光强。

 

当方向光照射到朗伯反射体上时,漫反射光的光强与入射光的方向和入射点表面法向夹角的余弦成正比,这称之为Lambert 定律,并由此构造出Lambert漫反射模型:

 

 

I是点光源强度,θ是入射光方向与顶点法线的夹角,称为入射(0≤θ ≤90°)

 

若N 为顶点单位法向量,L 表示从顶点指向光源的单位向量(注意,是由顶点指向光源,不要弄反了),则cosθ 等价于N 与L 的点积。所以公式(9-2)可以表示为公式(9-3):

 

 

综合考虑环境光和方向来,Lambert 光照模型可写为:

 

 

漫反射渲染

 

漫反射光照模型顶点着色程序(使用结构体)

  

镜面反射与Phong 模型

Lambert 模型较好地表现了粗糙表面上的光照现象,但表现不出光泽,主要原因是该模型没有考虑这些表面的镜面反射效果。

 

 

Phong Bui Tuong 提出一个计算镜面反射光强的经验模型,称为phong模型,认为镜面反射的光强与反射光线和视线的夹角相关,其数学表达如公式(9-5)所示:

 

 

k 为材质的镜面反射系数, Ns是高光指数,V表示从顶点到视点的观察方向, R代表反射光方向。

 

高光指数反映了物体表面的光泽程度。Ns越大,反射光越集中,当偏离反射方向时,光线衰减的越厉害,只有当视线方向与反射光线方向非常接近时才能看到镜面反射的高光现象,此时,镜面反射光将会在反射方向附近形成亮且小的光斑; Ns越小,表示物体越粗糙,反射光分散,观察到的光斑区域小,强度弱。

 

反射光的方向R 可以通过入射光方向L(从顶点指向光源)和物体法向量N求出:

 

 

phong 模型渲染

 

phong 光照模型的顶点着色程序实现

  

 

 

phong 光照模型片段着色实现的结构体

  

首先将几何顶点的模型空间坐标转换为用于光栅化的投影坐标;然后将顶点模型坐标和法向量模型坐标赋值给绑定TEXCOORD 语义词的变量,用于传递到片段着色程序中。

 

phong 光照模型顶点着色程序

  

phong 光照模型片段着色程序

  

 

 

Blinn-Phong 光照模型

 

phong光照模型中,必须计算V • R的值,其中R为反射光线方向单位向量,V 为视线方向单位向量,但是在Blinn-phong光照模型中,用N • H 的值取代了V • R。Blinn-phong光照模型公式为:

 

 

H 是“光入射方向L 和视点方向V 的中间向量”,通常也称之为半角向量。

 

 

Blinn-phong 模型片段着色程序

    

 

CG v-基础光照效果:使用Educoder教程 从定义基本数据结构开始,到编写渲染函数,我们逐步解释了相关概念和代码实现,希望能对您理解计算机图形学中的光照效果有所帮助。在计算机图形学中,光照效果是模拟真实世界中光线的传播和反射,使得渲染的场景更加逼真。通过以上代码,我们实现了一个简单的光照效果,将一个球体绘制在画布上,并模拟了光线的传播和反射。首先,让我们从基础开始,创建一个空白的画布。现在,让我们来定义一些基本的数据结构和变量,来表示场景中的物体、光源和材质等信息。接下来,我们开始编写渲染函数,该函数将使用光线追踪算法来模拟光的传播和反射。 阅读详情

相关推荐

球的光照模型完整实现代码(图形学)

此为计算机图形学球的光照模型的课程设计,内有完整代码可直接运行,运行环境为VC6.0,本次课程设计通过构建MFC工程实现了操作界面的可视化,绘制了一个球体,并可通过菜单选项控制显示效果,进行光照模型、材质、光源位置等选择。

Blinn-Phong光照模型解析及其实现

本文使用OpenGL,实现了Blinn-Phong光照模型

weixin_43757333的博客 9966

QT下openGL三维图形绘制的光照模型实现

实现了QT下OpenGL的光源照射编程,模拟现实中的光源实现三维图形的绘制,在Vs2017+QT插件平台下运行

计算机图形学五:局部光照模型(Blinn-Phong 反射模型)与着色方法(Phong Shading)

光照模型1 我们为何能够看到物体?2 泛光模型3 Lambert漫反射模型3 Phong反射模型4 Blinn-Phong反射模型5 Reference 到了这一部分,我们就开始进入到着色(shading)的环节了,简单来说shading就是计算出每个采样点的颜色是多少,特别来说,本文所介绍的是从经验总结而来的局部光照模型,并不是真正准确的模型,但是优点是计算快,效果可以接受,至今依然广泛的运用在...

吃人的博客 1万+

Visual Studio 2022与Qt集成实战:解决Qt.props导入错误的完整指南

本文详细解析了在Visual Studio 2022中集成Qt开发时,如何解决因Qt.props文件导入失败导致的编译错误。文章从问题根源入手,深入剖析了Qt.props文件与QtMsBuild环境变量的关系,并提供了从检查文件存在性、配置环境变量到直接修改项目文件路径的完整排查与修复方案,帮助开发者快速恢复项目构建。

wdx01234567的博客 675

通达信K线主图指标公式实战:如何用颜色标记快速识别涨停与炸板信号

本文详细介绍了如何利用通达信K线主图指标公式,通过颜色标记快速识别涨停与炸板等关键信号。通过实战拆解公式源码,手把手教您构建直观的“视觉交易系统”,将复杂的K线形态转化为醒目的颜色信号,帮助投资者高效聚焦机会与风险,提升技术分析效率。

weixin_29302047的博客 1762

简单光照模型与Phong光照模型

光照模型(Illumination model)用于物体表面某点处的光强 度计算。简单光照模型中只考虑反射光的作用,反射光由环境光、漫反射光和镜面反射光三部分组成。Phong 光照明模型:物体表面上一点反射到视点的光强I为环境光光强度Ie、漫反射光强度Id、镜面反射光强度Is的总和。

太酷啦 2592

避开RK3588开发板SDIO配置的坑:O9201SB WiFi模组接入实战指南

本文为嵌入式开发者提供了在RK3588开发板上,利用TF卡槽接入O9201SB WiFi6模组的实战指南。文章深度剖析了SDIO配置中常见的电源管理序列冲突问题,并给出了从设备树节点修改、内核编译到系统验证的完整解决方案,帮助开发者避开配置陷阱,成功实现高性能无线连接。

sprite的博客 954

基于GPU实现的经典光照模型算法:漫反射模型(使用cg语言实现)

  摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”  第9章 经典光照模型(illumination model)天地开辟 日月重光 ---司马懿,征东辽歌<v:line id="_x0000_s1

liu_lin_xm的专栏 3141

从按键开机到I2C隔离:手把手拆解一个智能硬件项目里的MOS管实战配置

本文详细解析了智能硬件项目中MOS管的实战配置,从按键开机电路到I2C总线隔离,全面覆盖电源管理和信号隔离的关键技术。通过PMOS+NMOS组合方案实现可靠的开机功能,并采用双NMOS方案优化I2C通信隔离,提升系统稳定性和信号质量。

weixin_28691741的博客 326

基于4G cat.1的低功耗车牌识别摄像头模组介绍

在消费类摄像头领域,4G低功耗相机已经非常普遍,在可视门锁,婴儿看护,户外监控等领域都获得了很好的应用.但是在工业领域,低功耗相机的应用还不是那么广泛.这里要介绍一款基于4G cat.1的低功耗车牌识别摄像头模组,在待机状态只有MCU和毫米波雷达以1Hz的频率工作,功耗低至500uA,并可以通过4G模块远程唤醒模组.

bindaz的专栏 1647

[CG编程] 基本光照模型的实现与拓展以及常见光照模型解析

0.前言 这篇文章写于去年的暑假。大二的假期时间多,小组便开发一个手机游戏的项目,开发过程中忙里偷闲地了解了Unity的shader编写,而CG又与shaderLab相似,所以又阅读了《CG教程》、《GPU 编程与CG 语言之阳春白雪下里巴人》学习图形学的基础。尝试编写unity shader时还恶补了些3D数学。这些忙里偷闲的日子,坏了空调的闷热的实验室,还真是有点怀念。当时写这些文章并不是想作...

weixin_30835649的博客 403

【YOLO】Mask Proto分支理解

Mask Proto分支通过解耦全局原型与实例参数,在保持YOLO实时性的同时实现精准分割。其技术核心在于利用多尺度特征生成可组合的原型,结合动态系数适应不同目标形态。未来可进一步融合Transformer的注意力机制,增强对复杂场景的建模能力。

浩瀚之水的专栏 476

基于CPU实现的Cook-Torrance光照模型(Cg语言实现)

摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”    在过去的一段时间中,光照模型得到了深入的发展,人们不再满足于只是对漫反射现象和镜面反射现象进行模拟,而是希望可以模拟更多特殊材质上的光照效果,如同向异性、各项异性等。上一章已经提到过,无论是漫反射,还是镜面反射,都

liu_lin_xm的专栏 9588

接口电路设计的关键要点

接口电路设计是嵌入式硬件开发的核心环节,本文系统阐述了五大关键设计要点:1)电平匹配技术,详细分析了3.3V/5V系统互连方案及转换电路计算;2)阻抗匹配原理,包括高速信号反射机制及差分信号处理;3)滤波与去耦设计,提出多级电容配置和"先电容后过孔"布局原则;4)接地设计规范,重点说明模拟/数字地分离及高速信号回流路径;5)防护电路设计,涵盖防反接、过流保护及ESD防护方案。文章通过具体计算公式、器件选型指南和布局技巧,为接口电路设计提供了系统化的解决方案,并附有设计检查清单和典型问题分

weiyvyy的博客 454

orangepi香橙派用户名及密码修改和VNC远程登陆

1、修改 /etc/passwd用户信息文件 vim /etc/passwd #admin❌503:501::/home/admin:/bin/bash #把用户名admin改成rest #test❌503:501::/home/test:/bin/bash 2、修改 /etc/shadow用户密码文件 vim /etc/shadow #admin:Dnakfw28zf38w:8764:0:168:7::: #由于密码加密方式存放,只修改用户名即可(密码不变) #test:Dnakfw28zf38w:876

weixin_40227845的博客 5661

GPU实现“Blinn-Phong 光照模型”(Cg语言)

摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”   9.4 Blinn-Phong光照模型Blinn-Phong光照模型,又称为Blinn-phong反射模型(Blinn–Phong reflection model

liu_lin_xm的专栏 4345

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

(转)光照模型及cg实现

经典光照模型(illumination model) 物体表面光照颜色由入射光、物体材质,以及材质和光的交互规律共同决定。 由于环境光给予物体各个点的光照强度相同,且没有方向之分,所以在只有环境光的情况下,同一物体各点的明暗程度均一样。 环境光是对光照现象的最简单抽象,局限性很大。它仅能描述光线在空间中无方向并均匀散布时的状态。 还有一种是平行光,即光线都从同一个方向照射...

weixin_30602505的博客 145

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Obj模型功能完善(物体材质,光照,法线贴图).Cg着色语言+OpenTK+F#实现.

  这篇文章给大家讲Obj模型里一些基本功能的完善,包含Cg着色语言,矩阵转换,光照,多重纹理,法线贴图的运用.   在上篇中,我们用GLSL实现了基本的phong光照,这里用Cg着色语言来实现另一钟Blinn-phong光照模型,平常我们说语言只是手段,关键是怎么运用,这个用在如一些高级编程语言上,我们或多或少有不同想法,但是在着色语言上,我认为太对了.因语法都是基于C,C++来的,并且去除很...

weixin_34192993的博客 604

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

CG之基本光照模型计算公式

参考资料:https://www.cnblogs.com/jietian331/p/5549889.html 在一个基本模型里,一个物体表面的颜色是由放射(emissive)、环境反射(ambient)、漫反射(diffuse)和镜面反射(specular)等光照作用的总和。 每种光照作用取决于表面材质的性质(如亮度和材质颜色)和光源的性质(如光的颜色和位置)的共同作用。 从数学上描述基

zolin7的专栏 1658
上一篇: cg的输入/输出与语义绑定
下一篇: 伸援手,莫犹豫
doctorsc
博客等级 码龄19年 51粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值