Показать сообщение отдельно
Старый 02.04.2014, 11:25   #229
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

Сообщение от bugway Посмотреть сообщение
Кто делал фабрику мешей, поделитесь соображениями - как это лучше связать с буфером/буферами вертексов?
Мое предложение. Каждый меш хранит один буффер с вершинами и буффер с индексами. Затем Список Поверхностей их индекс начала, конца и указатель на материал.

При отрисовке биндим оба буффера, и циклом бежим по поверхностям рисую диапазоны индексов. Все.

// псевдокод
template <typename T>
class 
Buffer {
}

struct Surface {
    
std::pair<intintrange;
    
Material *material;
}

class 
Mesh {
public:
    
void render() {
        
bindVertexBuffer(m_vertexBuffer);
        
bindIndexBuffer(m_indicesBuffer);
        
bindShader(); // устанавливает настройки меша в шейдер
        
for (const Surface &surface m_surfaces)
            
renderSurface(surface); // устанавливает настройки поверхности в шейдер - рисует
    
}
private:
    
std::vector<Surfacem_surfaces;
    
Buffer<Vertexm_vertexBuffer;
    
Buffer<intm_indexBuffer;

(Offline)
 
Ответить с цитированием