Python版Raytracer
来源:互联网 发布:派发优惠券软件 编辑:程序博客网 时间:2024/05/29 19:40
作者:i_dovelemon
日期:2017/05/02
来源:CSDN
主题:Ray tracer, python, pygame
引言
这段时间一直在看Ray Tracing from the ground up这本书,并且在看完之后自己也动手写了简单的demo,顺便学习下python。对的,这个tracer是使用python语言编写的,所以目标上只是实现tracer的功能,速度上就呵呵了。
图库
一些心得
通过这段时间的学习,慢慢了解到以前学习的一些误区。以前我一直以为,实时渲染和离线渲染是泾渭分明的两个不同的领域,我既然是做游戏的,那么就应该将主要精力放在实时渲染上面。直到我在GLB项目中为了实现PBR的光照,阅读PBR相关的资料的时候,我才慢慢发现,有必要去学习下离线渲染的相关知识。
正如知乎大v们说的那样,实时渲染的技术更多的是对离线渲染技术的一种近似和hacking。所以,我们应该先学会如何brute force去解决渲染中的问题,然后再去了解如何通过各种优化,hacking的技巧来达到实时渲染的目的。
所以,在以后的日子里面,一方面通过学习离线渲染的各种brute force的渲染方案来加深对图形学基础知识的理解,另一方面通过GLB项目,来掌握实时渲染的知识。
学到的知识
以下的知识,都是从Ray Tracing from the ground up中学到的知识的总结,这里只是列出来,具体的内容请从书中寻找:
采样理论:Random Sampling, Jittered Sampling, NRook Sampling, MultiJittered Sampling
映射理论:Map to HemiSphere
光照理论:BRDF,Rendering Equation, Reflect Equation
积分方法:Monte Carlo Intergration, Probability Density Function
GI算法:Path Tracing
Github
这个python版本的光线追踪渲染器以及开源在GitHub上,项目地址:https://github.com/idovelemon/raytracer/。感兴趣的同学可以自行下载尝试。
由于python是我近一个月才学习的语言,所以编写上面的规范性不太好,仅仅根据google python style做了一些简单的控制,还望见谅!
接下来,除了继续完善GLB项目之外,还将阅读Realistic Ray Tracing,这本书主要是实现一个GI Path Tracer,所以刚好补充下从Ray Tracing from the Ground up里面学到Path Tracing相关的知识。学习这本书的过程中,我将只是先Path Tracing,并且通过C++来实现,希望能够做出一个速度较快的版本,不用等太久。同时希望实现完毕这个之后,就开始啃Physical Based Rendering: From Theory To Implementation,掌握PBR相关的光照模型。
0 0
- Python版Raytracer
- RayTracer v0.1
- OCR识别python版及python代码
- suffix tree,python 版
- viterbi算法 python版
- 8皇后 python版
- Python版html_entity_decode(text):
- Python版DNW
- Python 3.3版发布
- Bloom Filter(python版)
- XXTEA Python版代码
- Python 爪巴虫 2.0版
- python版爬虫
- Python俄罗斯方块改进版
- python版文件批量改名
- Python版 HelloWorld
- Python 3.3版发布
- ping 源代码,python版
- 利用vue-cli创建Vue项目
- 04-Ubuntu-小技巧
- 浅析Mysql InnoDB存储引擎事务原理
- vijos1089——小胖抗日
- python--selenium多线程执行用例实例/执行多个用例
- Python版Raytracer
- MVC、MVP和MVVM
- dijkstra(优先队列) HDU 1874
- 解决Caffe训练过程中loss不变问题
- hover鼠标悬停事件
- Java8使用Streams处理数据
- ios 设备信息
- ApiCloud开发经验总结
- 217. 219.Contains Duplicate