DirectX отрисовка интерфейса
От: Аноним  
Дата: 29.01.07 07:59
Оценка:
Возникла задача создать оконный интерфейс под Direct3D с контролами (buttons, radio buttons,checkbox, editbox,listview,combobox,sliders, scrollbars). В принципе это я реализовал. Вопрос в следующем. Отрисовка мелких элементов осуществляется с помощью геометрии (линия — прямоугольник из 2х треугольников с текстурой), что довольно накладно получается ИМХО. Может кто знает другой способ? Как это интересно реализовано в Vista, ведь там gdi это обертка над DirectX, т.е. каким образом они отрисовывают grid'ы и более сложные элементы, состоящие из множества мелких деталей.
Re: DirectX отрисовка интерфейса
От: _DK_ Россия  
Дата: 29.01.07 12:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Возникла задача создать оконный интерфейс под Direct3D с контролами (buttons, radio buttons,checkbox, editbox,listview,combobox,sliders, scrollbars). В принципе это я реализовал. Вопрос в следующем. Отрисовка мелких элементов осуществляется с помощью геометрии (линия — прямоугольник из 2х треугольников с текстурой), что довольно накладно получается ИМХО. Может кто знает другой способ? Как это интересно реализовано в Vista, ведь там gdi это обертка над DirectX, т.е. каким образом они отрисовывают grid'ы и более сложные элементы, состоящие из множества мелких деталей.


Накопить сколько тебе надо, отсортировать по текстуре, например, и вперед — отрисовывать всё скопом.
Re[2]: DirectX отрисовка интерфейса
От: Аноним  
Дата: 29.01.07 14:17
Оценка:
Здравствуйте, _DK_, Вы писали:

_DK>Накопить сколько тебе надо, отсортировать по текстуре, например, и вперед — отрисовывать всё скопом.


Да у меня и так все в одной текстуре (весь интерфейс), даже шрифт. Так что переключения между ними минимальны. Я просто хотел узнать, как это сделано в Vista. Или допустим захочу я отрисовывать векторную графику с заливками, что мне тогда каждую линию полигоном представлять? Просто в голову amanith приходит, но он под OpenGL, а как быть в DX.
Re[3]: DirectX отрисовка интерфейса
От: _DK_ Россия  
Дата: 29.01.07 14:55
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, _DK_, Вы писали:


_DK>>Накопить сколько тебе надо, отсортировать по текстуре, например, и вперед — отрисовывать всё скопом.


А>Да у меня и так все в одной текстуре (весь интерфейс), даже шрифт. Так что переключения между ними минимальны. Я просто хотел узнать, как это сделано в Vista. Или допустим захочу я отрисовывать векторную графику с заливками, что мне тогда каждую линию полигоном представлять? Просто в голову amanith приходит, но он под OpenGL, а как быть в DX.


Во-первых, я говорил о треугольниках, а не не переключениях текстур, т.е. всё как обычно — копишь батч, потом разом отрисовываешь. Не думаю, что у тебя там набирается сильно больше пары тысяч треугольников — это сущие пустятки.
Во-вторых, висту сам не видел, но не вижу никаких проблем с тем, что ты описал (опять же никто не отменял возможность триангуляции монотонных полигонов).
В-третьих, всё что можно в ОГЛ и в ДХ реально =) .
Re[4]: DirectX отрисовка интерфейса
От: Аноним  
Дата: 29.01.07 20:28
Оценка:
Здравствуйте, _DK_, Вы писали:

_DK>Во-первых, я говорил о треугольниках, а не не переключениях текстур, т.е. всё как обычно — копишь батч, потом разом отрисовываешь.


Батчингом и пользуюсь 8) т.е. завожу вертекс буфер достаточных размеров, заполняю его геометрией интерфейса, и вызов DrawIndexPrimitive, т.к. все еще и проиндексировано. Вроде все достаточно быстро работает. Наверно придется продолжать свои эксперименты ))) Но у меня сложилось мнение, что на GDI или GDI+ плоский интерфейс куда легче реализуется.
Re: DirectX отрисовка интерфейса
От: t_rex Украина http://www.wxwidgets.info
Дата: 29.01.07 22:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Возникла задача создать оконный интерфейс под Direct3D с контролами (buttons, radio buttons,checkbox, editbox,listview,combobox,sliders, scrollbars).


Может это?
http://www.viksoe.dk/code/windowless1.htm
Re[2]: DirectX отрисовка интерфейса
От: Аноним  
Дата: 30.01.07 16:41
Оценка:
Здравствуйте, t_rex, Вы писали:

_>http://www.viksoe.dk/code/windowless1.htm


Viksoe я смотрел, неплохо написано, мне лично понравилось. Все понятно, но это ИМХО. С DirectX там связана только анимация, он берет контекст GDI и отрисовывает анимацию с помощью Direct3D. Выглядит неплохо.

Елси касаться только Direct3D, то для страждущих можно еще посмотреть более менее развитые
Popcap, Irrlicht, конечно же Microsoft GUI, может быть HGE (мало контролов) и OGRE.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.