Skip to content
Valtteri Koskivuori edited this page Apr 8, 2021 · 2 revisions

Some things I'd love to implement

UPDATE: As of 2021-04-08, network rendering has been implemented!

Network rendering.

Set up some worker computers on a local network:

vkoskiv@vkoskivMBP ~/D/d/c-ray> ./bin/c-ray --worker

Worker listening on port 33, my IP is 192.168.1.41

On my host machine, just like normal, I run:

vkoskiv@vkoskivDesktop ~/D/d/c-ray> ./bin/c-ray ./input/scene.json

In my scene.json, I have configured a network section, listing the IPs and ports of my worker nodes on my local network.

C-ray will parse the scene, compute all the required information, then upload the scene data to each of the workers. Each worker will report back with their available thread count, and their assigned color. The master node will then start rendering, and send requests to workers to render and return tiles. In the UI, locally rendered tiles would appear as normal, and remote-rendered tiles are highlighted with that workers' assigned color.

Remote workers just render their assigned tile, with the given amount of samples, and then return the resulting image data to the master node.

Blender scene exporter

A simple script for Blender, to export all the models in the scene as OBJ, and then write out a scene.json file C-ray can interpret. This way we can easily composite a scene to try C-ray on.

Clone this wiki locally