Go 中的基于物理的渲染器 (PBR)
包 pbr 通过单向的 CPU 单向蒙特卡洛路径跟踪实现基于物理的渲染。 pbr 使用 dep 依赖管理。
$ go get github.com/hunterloftis/pbr
$ dep ensure
$ makefunc main() {
floor := surface.UnitCube(material.Plastic(1, 1, 1, 0.05))
floor.Shift(geom.Vec{0, -0.1, 0}).Scale(geom.Vec{10, 0.1, 10})
ball := surface.UnitSphere(material.Gold(0.05, 1))
ball.Scale(geom.Vec{0.1, 0.1, 0.1})
c := camera.NewSLR().MoveTo(geom.Vec{0, 0, -0.5}).LookAt(geom.Vec{0, 0, 0})
s := surface.NewList(ball, floor)
e := env.NewGradient(rgb.Black, rgb.Energy{750, 750, 750}, 7)
scene := render.NewScene(c, s, e)
err := render.Iterative(scene, "hello.png", 898, 450, 8, true)
if err != nil {
fmt.Fprintf(os.Stderr, "\nError: %v\n", err)
}
}…所有这些,以及更多内容都在 Makefile 中。
要自己渲染它们,您需要 3D 资源的 fixtures 目录:
$ make fixtures注意:下载文件大小超过 1 千兆字节!
farm 包提供了一个客户端和服务器,可用于快速启动渲染农场。
客户端工作线程渲染场景并通过 HTTP 将样本发送到服务器。
服务器将样本整合到一个渲染结果中,并通过 GET / 返回该结果。
要尝试"玩具"渲染农场示例:
$ heroku create
$ heroku stack:set container
$ heroku labs:enable runtime-dyno-metadata
$ git push heroku master
$ heroku scale web=1:performance-l worker=
[More examples](#renders)暂无开放 Issues,或尚未同步最近议题。