За недельку сделал пенёк, берёзку ну и затекстурил скин для АК-47 из Rust.
Сейчас работаю в проекте The Chloe: online
кому интересно вот ссылки: https://vk.com/thechloeonline -
https://gamedev.ru/projects/forum/?id=237622
Кто-то делает игры, а кто-то тем временем пишет и отлаживает движок ...
Aviator777
Тоже хорошо, а почему текстуры отдельным переменными, а не массив?
Это я экспериментирую с материалом, потом буду просто использовать объект CGLXRscTextureDictionary, который содержит в себе массив этих же текстур.
Просто на данном этапе не могу определится создавать ли систему в которой 1 материал потребляет один объект CGLXRscTextureDictionary или же,
что бы разные материалы могли использовать один и тот же CGLXRscTextureDictionary.
CSimpleResourceSerializer<CGLXRSCTexture2D> textureSerializer; textureSerializer.addResource(&CGLXRSCTexture2D((CGLXDDSTexture2D*)pTexture1), "TEXTURE_1_ALBEDO"); textureSerializer.addResource(&CGLXRSCTexture2D((CGLXDDSTexture2D*)pTexture2), "TEXTURE_1_NORMAL"); textureSerializer.addResource(&CGLXRSCTexture2D((CGLXDDSTexture2D*)pTexture3), "TEXTURE_1_METALLIC"); textureSerializer.addResource(&CGLXRSCTexture2D((CGLXDDSTexture2D*)pTexture4), "TEXTURE_1_ROUGHTNESS"); textureSerializer.addResource(&CGLXRSCTexture2D((CGLXDDSTexture2D*)pTexture5), "TEXTURE_1_AMBIENT_OCCLUSION"); textureSerializer.serialize(); textureSerializer.dumpToFile("TextureDictionary1.rsc");
По идеи в одну библиотеку CGLXRscTextureDictionary можно запичкать, сколько угодно этих текстур ...
Если идём первым путём то можно использовать этот объект простым способом:
class CGLXRscTextureDictionary : public CDictionary<CGLXRSCTexture2D> { public: //Streaming constructor CGLXRscTextureDictionary(StreamInfo* pStremInfo) : CDictionary<CGLXRSCTexture2D>( pStremInfo) {} ~CGLXRscTextureDictionary() = default; //Must be only called from the appropriate thread, that has a graphics context assigned to it! void createGPUData() { for (const auto pRscTexture2D : this->m_pData) { pRscTexture2D->createGPUData(); } } void bindForDraw(uint32 bindingLoc) { int textureUnitID = 0; for (const auto pRscTexture2D : this->m_pData) { pRscTexture2D->bindForDraw(textureUnitID, bindingLoc); textureUnitID++; bindingLoc++; } } void unbind() { int textureUnitID = 0; for (const auto pRscTexture2D : this->m_pData) { pRscTexture2D->unbind(textureUnitID); textureUnitID++; } }
Проект Neuroformatter. Доработана система журнала, а так же квестовая система. Страница проекта: https://vk.com/n_formatter
Постепенно готовимся к релизу и опубликовали страницу в Steam: https://store.steampowered.com/app/463510/Normans_Great_Illusion/
Добавил систему "мана базы" в свою карточную игру. Страница проекта:https://m.vk.com/club173855184?from=groups
Новый скриншотник будет, или всё?
Будет ещё.
PS. Вот он: https://gamedev.ru/projects/forum/?id=241390
Тема в архиве.