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

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

Страницы: 1 2 3 4 5 6 7 Следующая »
#60
12:03, 7 авг. 2019

innuendo
>32 слоя в текстурном массиве - это типы террейна и они смешиваются
Частный случай тайлинга, только расточительный.

>ты бы поработал что-ли
На тебя что-ли?

lookid
Беда в том, что современные спецы в этих бесесдах и прочих - криворукие индусы
и это можно судить по тому, как все хуже и хуже обстоят дела с их последними высерами.
Складывается впечатление, что они поувольняли толковых разрабов и наняли студентоту за доширак.


#61
12:03, 7 авг. 2019

Suslik
>ну так делай, энтузиаст. пока у тебя почему-то только поучать других получается хорошо
А я никого и не поучал, тебе показалось.

#62
12:43, 7 авг. 2019

nes
> Частный случай тайлинга, только расточительный.

ну да, а делать мегатекстру на 100GB не расточительно

#63
13:23, 7 авг. 2019

innuendo
Мегатекстура еще хуже и вообще не оправдывает себя, как технология.

#64
(Правка: 13:31) 13:29, 7 авг. 2019

nes, я с удовольствием посмотрю как ты затекстуришь планету без мегатекстур, чтобы можно было рассмотреть как всю планету в целом, так и отдельные участки малого масштаба в хорошем разрешении.

+ Показать

Правда, в играх оно нахрен не нужно, но гугл мапс без этого не сделать.

#65
13:31, 7 авг. 2019

Есть вариант мегатекстуры, тайлы которой не считываются с диска, а генерятся на лету, как рендер в текстуру. Такая технология используется в каком-то из battlefield-ов, но она только для террейна.

#66
13:35, 7 авг. 2019

Джек Аллигатор
>Правда, в играх оно нахрен не нужно, но гугл мапс без этого не сделать.
Почему же не надо, нужно везде, где есть космическая тематика.
У меня есть несколько идей на этот счет, но до практики я их еще не доводил.

0xc0de
Если оно генерится на лету, зачем тогда там мегатекстура?
Почему нельзя генерить тогда в одну единственную текстуру,
или в некоторое ограниченное кол-во оных (если у нас многопоточный рендер)?

#67
13:39, 7 авг. 2019

nes
> Почему нельзя генерить тогда в одну единственную текстуру,

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

#68
13:40, 7 авг. 2019

nes
> Мегатекстура еще хуже и вообще не оправдывает себя, как технология.

а sparse texture тебя устроит?

#69
13:44, 7 авг. 2019

innuendo
Без понятия, возможно это то, что я придумал, вопрос еще не изучен мною.

#70
0:24, 9 авг. 2019

Статья Multisample Texture в официальной вики пустая, так что надо уточнить здесь.

кстати, у вас тоже https://www.khronos.org/opengl/wiki долго открывается?

GL_TEXTURE_2D_MULTISAMPLE и GL_TEXTURE_2D_MULTISAMPLE_ARRAY надо только инициализировать через glTextureStorage2DMultisample и glTextureStorage3DMultisample?
При использовании TextureStorage команды glTexImage2DMultisample и glTexImage3DMultisample больше не нужны? А то их DSA версий нет.
Глянул примеры использования Multisample Texture - всегда это создание текстуры кадра для последующего биндинга к FBO.
Получается для GL_TEXTURE_2D_MULTISAMPLE и GL_TEXTURE_2D_MULTISAMPLE_ARRAY методы записи/чтения данных не писать?

#71
5:20, 9 авг. 2019

nes
> кстати, у вас тоже https://www.khronos.org/opengl/wiki долго открывается?
часть страниц да, часть нет.
> TextureStorage
не предназначен для изменения, один раз заливаешь данные и больше не трогаешь.

#72
(Правка: 5:18) 4:49, 10 авг. 2019

Aroch
> TextureStorage
> не предназначен для изменения, один раз заливаешь данные и больше не трогаешь.
Разве? Вроде как данные можно изменять, но размер текстуры и internal format должны оставаться постоянными.

It is called "immutable" because once the storage is allocated, the storage cannot be changed. The texture can be deleted as normal, but the storage cannot be altered. A 256x256 2D texture with 5 mipmap layers that uses the GL_RGBA8 image format will *always* be a 256x256 2D texture with 5 mipmap layers that uses the GL_RGBA8 image format.

Note that what immutable storage refers to is the allocation of the memory, not the contents of that memory. You can upload different pixel data to immutable storage all you want. With mutable storage, you can re-vamp the storage of a texture object entirely, changing a 256x256 texture into a 1024x1024 texture.

https://www.khronos.org/opengl/wiki/Texture_Storage#Kinds_of_storage


Ещё вопрос:
1. glTextureView инициализирует текстуру как алиас другой текстуры
2. glCopyImageSubData копирует данные из одной текстуры в другую
3. в обоих командах нет строгого ограничения на internal format текстур, для совместимости достаточно чтобы совпадал размер данных(например, первая текстура состоит из signed bytes, другая из unsigned bytes)

+ таблица совместимости

4. притом никакой конвертации данных нет

Зачем такую муть с совместимостью форматов придумали?
Получается, можно скопировать данные из GL_RG32I текстуры в GL_RGBA16F и это не считается ошибкой, но по сути эти данные будут нечитаемым мусором.
Может это для каких-то хитрых алгоритмов надо?

#73
7:34, 10 авг. 2019

Джек Аллигатор
в шейдере можно упаковать rgba16f в rg32i так что мусор может оказаться читаемым

#74
17:13, 19 авг. 2019

Поясните за Layered Rendering.
Точнее за расширение ARB_viewport_array, которое добавляет следующие команды:
glViewportArrayv
glViewportIndexedf
glViewportIndexedfv
glScissorArrayv
glScissorIndexed
glScissorIndexedv
glDepthRangeArrayv
glDepthRangeIndexed
glGetFloati_v
glGetDoublei_v

Сначала показалось, что multiple viewports нужно чтобы задать несколько вьюпортов и затем переключаться между ними.
Потом углубился в документацию и выяснилось, что оно работает только в геометрическом шейдере, подобно тому как происходит рендеринг в грани кубомапы,
записываем в выходную переменную gl_ViewportIndex индекс вьюпорта.
Получается, суть в том что можно разделить поток примитивов по вьюпортам, притом отрисовка происходит во все вьюпорты одновременно?
Только какой в этом смысл, для чего это применяется на практике?

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