appleseed Users Forum

Render logic of source code

I am looking the render logic of source code, But have some problems. I know you use boost to multi-threading. I set render thread to 1 and debug the source code . I ran into the image

and then use the CPU device to render the frame. and then begins
image

and finally go into start_rendering() in genericframerender.cpp
image

then I have some problems. I have learned boost long time ago , but I want to roughly know the low-level render logic . I think the start_rendering() is the right place, but what about the inner code of start_rendering()? I debug the
image

but can not get more informaiton. And does image
in PassManagerFunc class do the real rendering??. Because I find tile_frame_begin in this function:
image

So, I guess on_tiled_frame_begin() is the low-level render code, right?

Maybe I find it, Is it pathtracer.h file??

I think i have found the logic:
as Above shows, It will call tile render, and the tilejob will call render_tile function:

And render_tile will call render_pixel to render each pixel
image

in render_pixel() function will compute the detailed low-level render function.

These technical questions are best placed in our Discord channels dedicated to development rather than in the forum. Below is the link to join:
https://discord.gg/dNCE5J8

A short overview of the different types of render components is here:
https://github.com/appleseedhq/appleseed/wiki/Renderer-Components

1 Like