实现 Spherical Harmonic Lighting
参考 Spherical Harmonic Lighting, the Gritty Details, by Robin Green. http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.html 文档, 实现了使用SH渲染由D3DXCreateBox和D3DXCreateTorus建造的模型的阴影效果.
程序代码和采样数据: /Files/vibilin/SHProject.rar
(注) 在代码中文件 "sphere.mesh"和 "torus.mesh" 存储的数据是分别由 D3DXCreateSphere(m_pd3dDevice, 1.0f, 32, 16, pObject->m_pMesh, NULL),D3DXCreateTorus(m_pd3dDevice,1.0f, 16, 32, pObject->m_pMesh, NULL) 函数生成后导出的.
转载于:https://www.cnblogs.com/vibilin/archive/2009/10/26/1622923.html
实现 Spherical Harmonic Lighting相关推荐
- PRT(Precomputed Radiance Transfer)球谐光照(Spherical Harmonic Lighting)
最近因为开始做PRT(Precomputed Radiance Transfer),看了一些资料.wikipedia上的解释: Precomputed Radiance Transfer ...
- Spherical Harmonic Lighting(球谐光照)
1.简介 球谐光照是实时渲染技术中的一种,属于Precompute Radiance Transfer(PRT)的范畴.经过预处理并存储相应的信息之后,它可以产生高质量的渲染及阴影效果.球谐光照需要使 ...
- 图形学基础|球谐光照(Spherical Harmonics Lighting)
球谐光照(Spherical Harmonics Lighting) 文章目录 球谐光照(Spherical Harmonics Lighting) 一.前言 二.球谐函数 2.1 基函数 2.2 投 ...
- Global Illumination_Spherical Harmonic Lighting(球谐光照)
首先我们需要知道的是,如何计算环境光shading,一般我们会想到IBL,其实我们也可以使用球谐函数来进行表示,本部分我们就先来了解下如何使用SH来计算环境光照(后续我们也会继续来看一下环境光阴影的计 ...
- Zonal harmonic 拟合 Spherical harmonic
LDPRT实现过程中的核心内容就是用一些列的Zonal harmonic 来拟合已知的Spherical harmonic,拟合过程用到了LBFGS来优化最小能量. 由于最近比较忙,暂时在这里占位,本 ...
- Spherical Harmonics Lighting
1.背景知识 1.1 光照表示 之前我们都只考虑光源点和物体表面点的光照作用,而现在,我们考虑物体表面点延伸的微型平面,这个微型平面作为半球形的底部,因此光照射进来的范围就是整个半球形,这也是B ...
- Spherical Harmonics Lighting的代码实现(基于OpenGL)
1.二维空间的勒让德多项式 勒让德多项式定义在[-1,1]范围内,其递归式是 下面这个函数的参数是给定的x,给定的l和m,其中l必须是正整数,而且m在[-l,l]范围内. //勒让德多项式计算方法 d ...
- Spherical Harmonics Lighting in DirectX
1.Per-Vertex SH Data Generation with D3DX D3DX函数产生的数据是SH系数的集合,可以跨平台使用. 对于Per-Vertex SH coefficien ...
- Spherical Harmonics Lighting代码实现(续)
上一篇文章我们已经可以求出由SH基函数组成特定复合函数的因子,现在我们就来实现三维空间的SHL,光源来自HDR图像. 该算法使用上一篇文章的SH因子计算过程.HDR图像导入过程,同时也使用了光线 ...
- 学习Spherical Harmonics的简记
说的不对请拍砖!Orz SH是一种特殊的函数,高阶的SH可以还原非常复杂的函数,而低阶的SH比较适合还原低频函数.现代GPU硬件通常支持4个channel的texture,或者支持大顶点格式,这也为4 ...
最新文章
- java int 127_Integer类型中奇怪的127和128
- C++构造函数和析构函数调用虚函数时都不会使用动态联编
- 代理的JavaOne 2014观察
- 地铁译:Spark for python developers --- 搭建Spark虚拟环境 4...
- request重定向_Python转发与重定向
- java+整合handwrite_解决java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad
- oracle sequences优化_Oracle 优化和性能调整
- 要将OFD文件的base64编码转换为可下载的OFD文件
- uniapp云开发微信小程序 云函数配置
- indesign如何画弧线_InDesign钢笔工具怎么使用
- 【闪电搜索算法】基于闪电搜索算法求解单目标优化问题matlab代码
- 18118 勇者斗恶龙
- 【详解】面试必问:SpringBoot自动配置原理
- 励志:12位早起的IT大佬们让小伙伴们都惊呆了
- 面试3 -- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- oracle转行交流群,oracle多列转行
- 写一个工具来了解ELF文件(一)
- 笑看春夏秋冬,淡泊无悔人生
- idea使用大全 idea快捷键大全
- 大力出奇迹,组合数学计算器
热门文章
- 02WCF初识:ServiceEndpoint
- Spring Boot Logback应用日志
- [转载]python模块学习---HTMLParser(解析HTML文档元素)
- memcache/memcached/memcachedb 配置、安装
- 使用存储过程备份SqlServer数据库
- 什么是C++标准库?
- Android菜鸟的成长笔记(23)——获取网络和SIM卡信息
- jquery ajax select 二级联动
- xcode 4 with subversion SVN server–Tips
- 如何利用路由器防止DoS拒绝服务疯狂***