Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Вернемся к нашим баранам или D3D возвращается Добавлено: 05.04.06 21:34  

Автор вопроса:  Sacred Phoenix | ICQ: 304238252 
После некоторых раздумий решил перегнать свою игруху с DirectX7 на DirectX8, с DirectDraw на Direct3D :) Все бы ничего, да вот в DirectDraw можно рисовать точки и залитые круги нужной толщины/диаметра. Есть ли поддержка этого в Direct3D?

З.Ы. Посмотрел, из чего состоит спрайт, на который натягивается шкурка - текстура. Два треугольника. Стало интересно, почему в основе спрайтов лежат треугольники?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #1
Добавлено: 05.04.06 23:06
Можно - точеки, отрезки, треугольники.
А примитивы более высокого уровня (кружочки, чайники :)) - при поддержке видюхи - эмуляции нет.

Треугольники положены в основу для быстродействия - это плоскость, которую можно описать минимальным количеством точек.
Если учесть, что в модели треугольники соприкасаются (имеют общие точки) - экономия получается огромная (фактически при прорисовке модели мы оперируем индексами вершин, что избавляет от рисования одной и той же точки).

Потом уже и весь мат. аппарат привязали к ним.

З.Ы. Кстати в open GL в этом плане проще - она поддерживает примитивы более высокого уровня. Но там нет таких приятных штучек, как классы для скелетной аннимации (как например квантернионы) - их приходится реализовывать самому.

Ответить

Номер ответа: 2
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #2 Добавлено: 06.04.06 22:13
Все ясно. Сенкс :)

Только: как тогда рисовать в Direct3D точки? Можно ли рисовать точки с заданной жирностью, если да, то как?

Ответить

Номер ответа: 3
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #3
Добавлено: 07.04.06 02:09
Как рисовать... Может я тебе лучше пример скину?

Насчет жирности.
Насколько я знаю, как в Open GL

glPointSize(2);

нельзя.

Размер точки вычисляется D3D , в зависимости от того как инициализированы соответствующие структуры.

Либо если хотим создать жирную точку, то делать это нужно программно (русуем массив точек).

Ответить

Номер ответа: 4
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #4 Добавлено: 07.04.06 21:42
Пример получил, сенкс еще раз :)

делать это нужно программно (русуем массив точек).
Имхо скорость снизится на видимый порядок (во всяком случае в DD такое не вышло - начались тормоза aka "Windows 3.11 forever" :) )

Ответить

Номер ответа: 5
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #5
Добавлено: 07.04.06 22:06
Если использовать список, то не снизится (ну или совсем незначительно)- специально придумали.

Ответить

Номер ответа: 6
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #6 Добавлено: 08.04.06 17:13
Если использовать список, то не снизится (ну или совсем незначительно)- специально придумали.
А, ну тогда да. Огромное спасибо! :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам