Rust 光线追踪 03: 渲染一个圆

下面的公式有点多,只是把原教程中的公式详细展开了,一步一步来,很简单,相信我。 给定一个点,判断一个点是否在一个半径为 $R$ 的圆或者圆外、圆内,我们可以使用下面的公式来判断。这里假设圆心在 $(0,0,0)$ 点,半径为 $R$ 如果一个点 $(x, y, z)$ 在圆上,则 $x^2 + y^2 + z^2 = R^2$ 如果一个点 $(x, y, z)$ 在圆内,则 $x^2 + y^2 + z^2 < R^2$ 如果一个点 $(x, y, z)$ 在圆外,则 $x^2 + y^2 + z^2 > R^2$ 假设圆心在点 $C = (C_x, C_y, C_z)$,半径为 r,则根据上面的第一个公式,可以得到 $(x - C_x)^2 + (y - C_y)^2 + (z - C_z)^2 = r^2$ 我们可以将点 $(x, y, z)$ 使用之前的 Vec3 向量表示,例如设 $点P = (x, y, z)$,则可以将上面的公式,换一种表达形式,也就是...

November 20, 2021 · 3 min · fred

Rust 光线追踪 02: 使用光线生成渐变图

这个小节的目标是添加光线相光内容,根据光线打在屏幕上不同的位置,生成一张蓝白渐变图。 ...

November 20, 2021 · 5 min · fred

Rust 光线追踪 01: 输出PPM

这个系列的博客是使用 Rust 来实现 《Ray Tracing in One Weekend》相关的内容,我们把整本书拆开,来分篇实现,这们可以进一步降低难度。PPM是一个简单的图片格式,它将RGB的颜色使用 ASCII 的形式记录在文件中。 ...

November 18, 2021 · 4 min · fred

This Week In Moeif 21

这周的周记,拖到了周一才写。昨天周日,一天没干活,晚上的时候把博客从Hexo迁移到了Hugo,因为Hugo有更像样的主题。这个周小Q回家了,我一个人在上海,还是按原来的节奏开发,还在继续推进游戏码农项目,但是推的有点吃力,感觉好多东西没有想明白。 ...

November 15, 2021 · 1 min · fred

This Week In Moeif 20

今天上海的天气开始大幅度降温了,现在外面开始下雨了,刚刚看完了一部电影《幸福终点站》,一开始想从里面寻找一下关于时间线的灵感,但是看着看着,就沉浸到剧情里了。 ...

November 7, 2021 · 1 min · fred