gpt4 book ai didi

c++ - 访问者模式应该用于渲染吗?

转载 作者:太空宇宙 更新时间:2023-11-04 11:47:05 32 4
gpt4 key购买 nike

我有一个游戏引擎目前使用继承来提供通用接口(interface)来进行渲染:

class renderable
{
public:
void render();
};

每个类都调用 gl_* 函数本身,这使得代码难以优化并且难以实现诸如设置渲染质量之类的东西:

class sphere : public renderable
{
public:
void render()
{
glDrawElements(...);
}
};

我正在考虑实现一个系统,在该系统中我将创建一个 Renderer 类来渲染我的对象:

class sphere
{
void render( renderer* r )
{
r->renderme( *this );
}
};

class renderer
{
renderme( sphere& sphere )
{
// magically get render resources here
// magically render a sphere here
}
};

我的主要问题是在使用此方法时我应该在哪里存储 VBO 以及我应该在哪里创建它们?我什至应该使用这种方法还是坚持当前的方法,也许是其他方法?

最佳答案

(免责声明:我既不是 GameEngine 也不是 C++ 性能专家,所以对此持保留态度)

有一些现有的游戏引擎使用访问者方法,例如GamePlay3D .出于性能原因,您可能应该从渲染例程中排除不可见的对象。

关于c++ - 访问者模式应该用于渲染吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19494962/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com