I wonder if we shall be ambitious and make taichi_three more versatile for becoming the standard of "rendering pipelines" in Taichi (although there'll be overheads compared with a true GPU rendering pipeline). Below are some suggested features that has been/can be implemented for taichi_three:
[x] Physically-based shading: Cook-Torrance BRDF and PBR materials; I have already implemented Cook-Torrance shading here, but haven't put into taichi_three yet
[x] Multiple render targets: adding additional camera buffers, this would be useful for deferred rendering and other screen-space methods. I have implemented this in my own taichi_three fork.
[x] Shadow mapping: this can be done by using a "shadow camera" with ortho projection
[ ] Postprocessing: SSAO, screen-space reflection, tonemapping, etc.
PBR sounds a cool feature to have. I think it should be optional. I just added Model.vertex_shader and Model.pixel_shader method in latest master, and we may override them in PBRModel to achieve it. WDYT?
I wonder if we shall be ambitious and make taichi_three more versatile for becoming the standard of "rendering pipelines" in Taichi (although there'll be overheads compared with a true GPU rendering pipeline). Below are some suggested features that has been/can be implemented for taichi_three:
[x] Physically-based shading: Cook-Torrance BRDF and PBR materials; I have already implemented Cook-Torrance shading here, but haven't put into taichi_three yet
[x] Multiple render targets: adding additional camera buffers, this would be useful for deferred rendering and other screen-space methods. I have implemented this in my own taichi_three fork.
[x] Shadow mapping: this can be done by using a "shadow camera" with ortho projection
[ ] Postprocessing: SSAO, screen-space reflection, tonemapping, etc.
[ ] Image-based lighting and environment maps
[ ] Path tracing, e.g., Taichi Cornell box and particle renderer examples