实验 2.3 如何增加线程数量

在图形界面中修改线程数量后似乎没有影响到渲染时间 (在没修过线程代码的情况下也没有发生文档中说的会出现的问题)。如果是修改 render_engine 文件中构造函数的参数,在没有修改线程函数的前提下,我尝试增加光栅化线程数量,虽然渲染时间发生变化,可是无论增加多少个,渲染时间的变化都是一样的,比如:渲染 cow 这种短时间的怎么增加都只减一半,而渲染 dragon 这种长时间的都只能减 2 秒 (这让我很疑惑)。所以如何增加线程数量呢,我没有在文档中看到关于增加线程数量的说明,而且文档提到的主要需要修改的部分仅在于三个线程函数、fragmentbuff 和 context

有人知道解决办法吗

// choose render type
void RenderEngine::render(Scene& scene, RendererType type)
{
switch (type) {
case RendererType::RASTERIZER: {
rasterizer_render = std::make_unique(*this, n_threads, n_threads, n_threads);
rasterizer_render->render(scene); break;}
// case RendererType::RASTERIZER_MT: rasterizer_render->render_mt(scene); break;
case RendererType::WHITTED_STYLE: whitted_render->render(scene); break;
default: break;
}
}
试试把 render_engine.cpp 文件中 RenderEngine::render 函数原来的 case 语句改成上面的代码
多了一句 rasterizer_render = std::make_unique(*this, n_threads, n_threads, n_threads);