3d - Wavefront Obj 材料,.rfl 文件
问题描述
我一直在努力创建一个功能齐全的 Wavefront 对象材料解析器,在阅读 规范时,我遇到了对“.rfl”文件的引用。但是,我找不到有关此文件的更多信息。
据说,Alias|Wavefront inc 的“文件格式:4.2 版”的“第 8 章,“光谱曲线文件 (.rfl)”中应该有更多信息,但我也找不到。
有谁知道更多关于这个文件的信息吗?我知道缺乏关于它的信息可能意味着它未被使用且不必要,但我仍然有兴趣了解它。
解决方案
我还没有拿到文档,但我现在至少可以描述格式。
我已经在此处记录了格式,但我也会在此处嵌入经过编辑的副本以防万一。
另外:我还要指出,我发现这种格式不足以表示光线追踪中的真实材料,并且正在努力使我自己的光线追踪器更好地处理现代数据。如果您对此感兴趣,请搜索“复折射率”并阅读 Wikipedia 文章和其他来源。
整体格式
RFL 文件是纯文本、ASCII 编码文件。
空白行和以#
or开头的!
行将被忽略。
数据点条目
RFL 文件中的每个条目由两个数字组成,由空格分隔并由新行终止:
- 以纳米为单位的光波长,通常被视为整数,但很可能接受任何十进制数。
- 一个浮点数,表示对那种光的相对响应。对于用于材质的 RFL 文件,该值似乎被限制在 0.0 到 1.0 的范围内。对于用于光源的 RFL 文件,该值可以超过 1.0。
例子:
450 .470
450nm 光从这个表面反射回来,保留了 47% 的亮度。
如果您的光波长没有自己的条目,则可以插入附近的条目以找到合适的值。(简单的线性插值可能就足够了?)
未知条目
几个文件包含以下额外条目:
n .44
k 3.2
因为它们的命名几乎肯定n
与k
折射率有关,但问题是,不同波长的折射率不同,因此无法很好地利用数据。
推荐阅读
- app-store - 添加自定义 iOS App Store 开发者图标
- rust - 如何创建两个窗口,第一个显示 OrthographicCameraBundle,第二个显示 UICameraBundle?
- c# - 将文本(字符串值)附加到 txt 文件的每一行
- mongodb - MongoBD Compass querySrv ENODATA _mongodb._tcp.cluster0.yqxra.gcp.mongodb.net
- laravel - 如何在不使用 DB::raw 的情况下编写 Laravel 雄辩的查询,这样它就不必将 MySQL 严格模式设置为 false
- javascript - 使用 Google Apps 脚本问题将 Google 表单响应传输到 Google 表格
- php - 我无法创建登录名来登录帐户
- python - 如何捕获从 MYSQL 触发器(嵌入在另一个 py 脚本中)内部调用的 python 脚本的输出?
- python - Python asyncio 处理取消任务
- r - Stargazer 导出到 excel (xlsx)