Рисование текста в 3D

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Рисование текста в 3D

Сообщение DirectXManiac » 08.01.2008 (Вт) 20:05

Значит стоит задача нарисовать текст(имя пользователя) на 3Д моделью... Поделитесь пожалуйста способами это сделать. У меня была идея сделать на своих спрайтах(возможность использования атласа текстур) класс шрифта и рисовать билбордами, связанными между собой(т.е. углы поворота у всех одинаковые(хотя они и так должны быть такими). Но насколько ли это разумно.
Mikle, помойму предлогал заранее отрендерить текст в текстуру и сделать то же самое или как то так, вообщем прошу только алгоритм, с кодом как-нить разберусь.
#define ROFL 0xDDDD

DODge
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 30.07.2006 (Вс) 0:25
Откуда: Нижний Новгород

Сообщение DODge » 08.01.2008 (Вт) 22:23

DirectXManiac
В SDK от DirectX были примеры по отображению текста в окне девайса. Там были и рендер текста в текстуру, и через класс шрифта, и вообще трёхмерные модели букв через Mesh.TextFromFont. Причём, два из этих способов я удачно использовал в своей программе. Так что можешь поковырять там и найти всё даже в исходниках.
CPU = Intel Core i5 6500 @ 3.2 GHz
VGA = GeForce GTX 650Ti 2Gb
RAM = 8 ГБ DDR4 @ 2133 MHz
OS = Windows 10 Pro 64-bit
IDE = Microsoft Visual Studio Community 2017 (Visual Basic.NET)
GAPI = SharpDX 9 + 12

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 09.01.2008 (Ср) 11:52

DirectXManiac
Как в книге я на Teapot цветок накладывал.

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Сообщение lellel » 09.01.2008 (Ср) 12:36

а вот у меня более простой вопрос, как сделать меню для игры? помнится у Mikle была игра, где надо было прыгать по "островкам" и собирать деньги, как сделать меню как там например? помнится что то такое где то читал, там кажется советовали использовать возможности VB а не DirectDraw...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 09.01.2008 (Ср) 15:26

Неправильно советовали. Если хочешь красивое меню - рисуй его сам.
Изображение

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 09.01.2008 (Ср) 15:31

lellel
В той игре меню сделано на D3DXCreateText, исходник игры я выкладывал.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 09.01.2008 (Ср) 23:57

Поделитесь плиз ссылкой на DX SDK 8.1 если у кого есть, а то винт полетел и все к чертям :( Я терь без SDK как без рук((
#define ROFL 0xDDDD

Ktulhu
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 14.07.2007 (Сб) 14:03
Откуда: Киев, Р'льех

Сообщение Ktulhu » 10.01.2008 (Чт) 21:29


DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 11.01.2008 (Пт) 1:31

Ktulhu
Спасибо! Ты мой спаситель :wink:
#define ROFL 0xDDDD

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 12.01.2008 (Сб) 21:25

Mikle
Попробовал способ из SDK рисования текста в пространстве - он мне не подходит. На то есть причины и думаю они понятны. Теперь задача поставлена чуть подругому - надо нарисовать текст(D3DX.DrawText) так, чтобы создалось впечатление что он над моделью, т.е. спроектировать координаты x,y,z на плоскость экрана. Причем не надо уменьшать размеры шрифта - просто позицию текста найти. Никто не подскажет примерных формул?
Камера LookAt - известна позиция и точка взгляда ))
#define ROFL 0xDDDD

Ktulhu
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 14.07.2007 (Сб) 14:03
Откуда: Киев, Р'льех

Сообщение Ktulhu » 12.01.2008 (Сб) 21:55

DirectXManiac
Есть функция D3DXVec3Project() для этого.
А вообще учи геометрию ;)

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.01.2008 (Вс) 10:11

DirectXManiac
То есть тебя устраивает, что модель нельзя будет поворачивать?

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 14.01.2008 (Пн) 1:46

Mikle
Я про то же и говорю. Мне надо найти координаты текста под разными углами вгляда на модель. Мне не надо писать на модели, мне надо написать над моделью
:oops: :oops: :oops: Ух блин... Опечатался и ввел людей в заблуждение. Извиняюсь. Проблема решена.
Ktulhu
Я делал уже по своему. Вручную трансформировал текст матрицами и получалось. Но скорость падала. А про D3DXVec3Project совсем забыл. Спасибо)))
А вообще учи геометрию

Гм... Не уместно, я спросил более рациональное решение. Если бы я не знал геометрию, я бы врядле написал софтварный рендерер. :wink: Кстати где то он у меня валялся))
#define ROFL 0xDDDD

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 14.01.2008 (Пн) 11:19

DirectXManiac
софтварный рендерер

Оп-па, интересно.

Ktulhu
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 14.07.2007 (Сб) 14:03
Откуда: Киев, Р'льех

Сообщение Ktulhu » 14.01.2008 (Пн) 13:21

DirectXManiac
так выкладывай) откуда нам знать про твои познания

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 14.01.2008 (Пн) 19:42

Mikle
Ну это некое породие... Но все же... Вообщем рисование фигур в WireFrame режиме... Так и не доделал. Просто когда-то пошел интерес на информатике сделать 3Д графику на Turbo Pascal-e. Вот я пришел и сделал на ВБ со всеми формулами. Если интересно - выложу сорсы, но там ничего интересного нету, просто формулы - доработать не хватило терпения :)
#define ROFL 0xDDDD


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList