Войти
ПрограммированиеФорумГрафика

Архитектура OpenGL враппера (2 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#15
(Правка: 12:19) 12:19, 5 авг. 2019

Suslik
Obj-C и Swift всем насували.


#16
12:20, 5 авг. 2019

Suslik
Спасибо, буду читать.

#17
(Правка: 16:15) 16:06, 5 авг. 2019

Джек Аллигатор
Я бы наоборот не создавал для каждого типа текстуры отдельный класс, а сделал бы один класс Texture и все.

А работа со всеми типами текстур, как с 3d текстурой. Например 1d текстура - это частный случай 3d текстуры, где height и depth = 1. Если texture 2d array, то depth - это количество слоев. Если cubemap array, то depth / 6 - слой массива, а depth ÷ 6 - индекс стороны куба. И т.д.

#18
16:28, 5 авг. 2019

0xc0de
>Если cubemap array, то depth / 6 - слой массива, а depth ÷ 6 - индекс стороны куба. И т.д.
За такое надо на улицу выкидывать мамкиного программиста, я считаю.

#19
16:44, 5 авг. 2019

nes
> За такое надо на улицу выкидывать
Кхе, кхе. Ты лучше расскажи, как ты собрался обходиться без srgb текстур, умник.

#20
16:46, 5 авг. 2019

0xc0de
Еще не крутил их, но думаю что тот-же GammaRamp на уровне шейдеров - не проблема, но утверждать не стану.

#21
(Правка: 16:49) 16:48, 5 авг. 2019

0xc0de, это пройденный этап, писал об этом в нульпосте.
Задача ведь в том чтобы всю такую замудрень запрятать во враппер:
> Если texture 2d array, то depth - это количество слоев. Если cubemap array, то
> depth / 6 - слой массива, а depth ÷ 6 - индекс стороны куба. И т.д.

Кароче я сделал текстуры строготипизированными. Какого типа данные указал в начале, то и надо грузить на протяжении всей работы с текстурами.
Насчет остального пока думаю.

Есть ещё идея — во всевозможных текстурных массивах перенести индекс элемента из параметров команды в квадратные скобки.
Например:

let mip_map_level = 1;
let array_length = 10;
let image_size = uvec2(512, 512);
let texture_2d_array = Texture2dArray::create(UBVec4_unorm, mip_map_level, image_size, array_length);
texture_2d_array[1].upload_image(0, &data); // загрузили вторую текстуру в нулевой mip-map уровень

#22
17:09, 5 авг. 2019

Джек Аллигатор

Как идею, могу предложить написать враппер над OpenGL в терминах Vulkan. Оперировать объектами типа renderpass, pipeline и т.д. Тогда в будущем добавить vulkan render backend будет проще и это не будет тупая обертка над функциями ogl.

#23
17:12, 5 авг. 2019

Джек Аллигатор
> Есть ещё идея — во всевозможных текстурных массивах перенести индекс элемента
> из параметров команды в квадратные скобки.

Это синтаксический сахар, не более. Если тебе так удобно, то так и делай, все равно кто-то кроме тебя этот враппер использовать не будет.

#24
(Правка: 17:24) 17:23, 5 авг. 2019

0xc0de, Vulkan для меня пока слишком сложный, без особой причины не буду в него соваться.
Хотя рядом на полке лежит книга Vulkan Руководство разработчика(в отвратительном переводе мастера отвратительных переводов steps3d Алексея Борескова), и кучу статей перечитал(в основном здесь) - всё равно слишком высокий порог входа.

> Это синтаксический сахар, не более. Если тебе так удобно, то так и делай, все
> равно кто-то кроме тебя этот враппер использовать не будет.
Я ж не хвастаюсь, а выкладываю для критики.

#25
20:40, 5 авг. 2019

Вот думаю - куда можно прикрутить массивы текстур, так ли они нужны в движке?
Единственное что приходит на ум - мильен мега партиклей.

#26
21:06, 5 авг. 2019

nes
> куда можно прикрутить массивы текстур, так ли они нужны в движке?

террейн, кастомизация и др

#27
21:09, 5 авг. 2019

innuendo
Для всего что ты перечислил хватит 16 юнитов с головой, имхо.

#28
21:18, 5 авг. 2019

nes
> Вот думаю - куда можно прикрутить массивы текстур, так ли они нужны в движке?

Текстурные массивы пришли в свое время, как замена текстурным атласам.

#29
21:20, 5 авг. 2019

Suslik
Да. Рендерграф топчик. Надо попробовать.

Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумГрафика