# Urho3D LightProbe
---
### Description
SH coefficients generated from cubemap texture to achieve irradiance used as light probe. Based on: An Efficient Representation for Irradiance Environment Maps, ref: http://graphics.stanford.edu/papers/envmap/
There are six lightprobes in the scene that reflect some color to validate testing. You can spot them easily.
---
### How the coffecients are generated, stored and applied:
1) CubeCapture class generates cubemap textures.
2) LightProbe class maps the texture onto a unit box and generates SH coefficients onto a spherical space.
3) LightProbeCreator class gathers SH coefficients from all the LightProbes and packs the data into a single ShprobeData.png file.
4) shader program reads the ShprobeData.png data and applies irradiance (eqn. 13) mentioned in the above ref.
5) Character class periodically searches for the nearest light probe and updates shader params.
Coefficient generation takes about **~170 msec.** to generate six light probe coeffs in the scene. Your results may vary. The example does not generate the coefficients automatically, as it's already generated.
To enable coeff generation, set **generateLightProbes_=true** in the CharacterDemo class.
#### Some useful debugging info:
* dump cubemap textures by setting **dumpOutputFiles_=true** in CubeCapture class.
* dump sh coeffs by setting **dumpShCoeff_=true** in LightProbe class.
**Note:** enabling the above dump will obviously impact the build time.
---
### DX9 build problems:
* huge shader compile spike when you 1st run the demo. Created MANUAL_UNROLL preprocessor define and it's set to on, currently.
* light globes, models which cover actual lights, changes to different color. I have no idea why it does this.
* initially declared cProbeIndex as int and I noticed it was glitchy. Changed it to float and it works fine. Consequently, changed glsl var to float to reflect shader programs to remain consistent.
---
### Screenshot
![alt tag](https://github.com/Lumak/Urho3D-LightProbe/blob/master/screenshot/lightprobescreen0.png)
---
### To Build
To build it, unzip/drop the repository into your Urho3D/ folder and build it the same way as you'd build the default Samples that come with Urho3D.
**Built with Urho3D 1.7 tag.**
---
### License
The MIT License (MIT)
没有合适的资源?快使用搜索试试~ 我知道了~
Urho3D-LightProbe:从立方体贴图纹理生成的SH系数,以实现用作光照探测器的辐照度
共63个文件
xml:19个
png:8个
mdl:7个
需积分: 18 3 下载量 121 浏览量
2021-05-11
21:52:34
上传
评论
收藏 704KB ZIP 举报
温馨提示
Urho3D LightProbe 描述 从立方体贴图纹理生成的SH系数可达到用作照光探针的辐照度。 基于:辐射环境图的有效表示形式,请参考: : 场景中有六个可以反射某种颜色以验证测试的光探针。 您可以轻松发现它们。 如何生成,存储和应用系数: CubeCapture类生成立方体贴图纹理。 LightProbe类将纹理映射到单位框上,并在球形空间上生成SH系数。 LightProbeCreator类从所有LightProbes收集SH系数,并将数据打包到单个ShprobeData.png文件中。 着色器程序读取ShprobeData.png数据并应用上面参考中提到的辐照度(等式13)。 角色类会定期搜索最近的光照探测器并更新着色器参数。 系数产生大约需要170毫秒。 在场景中产生六个光探针系数。 您的结果可能会有所不同。 该示例不会自动生成系数,因为它已经生成。 要启用
资源详情
资源评论
资源推荐
收起资源包目录
Urho3D-LightProbe-master.zip (63个子文件)
Urho3D-LightProbe-master
.gitattributes 66B
MIT-LICENSE 1KB
Source
Urho3D
Core
HelperThread.h 3KB
Samples
77_LightProbe
LightProbe.cpp 14KB
Character.cpp 9KB
Character.h 3KB
CubeCapture.h 3KB
CharacterDemo.cpp 14KB
CMakeLists.txt 1KB
CubeCapture.cpp 6KB
LightProbeCreator.cpp 7KB
LightProbe.h 6KB
CharacterDemo.h 3KB
CollisionLayer.h 2KB
LightProbeCreator.h 3KB
README.md 2KB
bin
Data
LightProbe
testScene.xml 14KB
Shaders
HLSL
LitSolidLP.hlsl 10KB
LightProbe.hlsl 3KB
GLSL
LightProbe.glsl 3KB
LitSolidLP.glsl 8KB
Techniques
NoTextureLP.xml 530B
Cubemaps
node20_PosX.png 678B
node20_NegY.png 1KB
node20_PosZ.png 1KB
node20_NegZ.png 1KB
node20_PosY.png 2KB
node20.xml 379B
node20_NegX.png 2KB
Models
ceiling.mdl 968B
disk.mdl 3KB
box.mdl 968B
sphere.mdl 18KB
base.mdl 2KB
wall.mdl 968B
Textures
SHprobeData.xml 153B
ProtoWhite256.jpg 40KB
diskemissive.jpg 28KB
lightProbe.xml 284B
diskdiff.jpg 44KB
SHprobeData.png 268B
Materials
pointGlobe3Mat.xml 154B
defaultMat.xml 324B
grnMat.xml 262B
coneGlobeMat.xml 264B
lightProbeMat.xml 157B
disk1Mat.xml 408B
disk2Mat.xml 410B
BetaJoints_MAT.xml 612B
pointGlobe2Mat.xml 154B
BetaBody_MAT.xml 599B
pointGlobe1Mat.xml 154B
redMat.xml 255B
Platforms
Models
BetaLowpoly
Readme.txt 462B
Beta_Idle.ani 267KB
Beta_JumpLoop1.ani 35KB
Beta_Run.ani 25KB
License.txt 1KB
Beta.mdl 601KB
Beta_JumpStart.ani 15KB
Materials
BetaJoints_MAT.xml 288B
BetaBody_MAT.xml 367B
screenshot
lightprobescreen0.png 83KB
共 63 条
- 1
米丝梨
- 粉丝: 28
- 资源: 4682
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于java的校园招聘系统的设计与实现.docx
- 基于java的协同过滤算法商品推荐系统的设计与实现.docx
- 基于java的新冠物资管理系统的设计与实现.docx
- 基于小程序的高校毕业管理系统小程序源码(小程序毕业设计完整源码+LW).zip
- 基于java的新冠物资管理的设计与实现.docx
- 基于java的学生心理压力咨询评判系统的设计与实现.docx
- 基于java的学生信息管理系统的设计与实现.docx
- 基于java的学生成绩分析和弱项辅助系统的设计与实现.docx
- 基于java的综合小区管理系统的设计与实现.docx
- 基于群智能体优化算法的无人机集群路径规划算法,MATLAB仿真,可生成包括每架无人机路径、高度、威胁、转角、迭代次数等,有代码讲解,运用蜣螂算法、豪猪算法、蚁群算法来对无人机集群路径规划,分布式规划
- 基于小程序的鲜花销售源码(小程序毕业设计完整源码+LW).zip
- Drivedroid(重装系统)安全下载.apk
- 使用 Docker 和 Flask 集成 PostgreSQL 数据库并部署应用程序
- MATLAB基于粒子滤波的锂离子电池寿命(SOH)预测 附详细资料 使用美国宇航局 NASA 埃姆斯研究中心的 4 组锂离子电池老化试验数据进行 matlab 仿真进行寿命预测,实验证 明粒子滤波能够
- 计算机专业100套毕业设计(内含JAVA源码)
- 基于小程序的语言课学习系统的设计与实现源码(小程序毕业设计完整源码).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0