Здравствуйте, гость ( Вход | Регистрация )

6 страниц V  < 1 2 3 4 5 > »   
Ответить в данную темуНачать новую тему
> 3d Graphics, DirectX, OpenGL, Software
someone
сообщение 8.09.2004 - 13:57
Unknown
****
орден III степени
Группа: Модератор
Сообщений: 405
Регистрация: 29.09.2003
Пользователь №: 74


Ещё вот что, я не понял, как это должно выглядеть, чтоб ты сказал что вот так правильно и я так хотел? (IMG:http://forum.netall.ru/style_emoticons/default/smile.gif)
Перейти в начало страницы
 
+Цитировать сообщение
Колбасьев
сообщение 8.09.2004 - 18:40
Энтузиаст
****

Группа: Участник
Сообщений: 462
Регистрация: 30.09.2003
Пользователь №: 143


Как на рисунке с нечерным фоном.
Перейти в начало страницы
 
+Цитировать сообщение
Rayden
сообщение 18.11.2004 - 21:18
Постоялец форума
*****

Группа: Участник
Сообщений: 553
Регистрация: 25.10.2004
Пользователь №: 5135


Цитата(someone @ 27.12.2003 - 15:50)
Кто работал с Shadow Maps в DX ?
*
[/quote]


Я работал, shadow maps очень даже хорошо работают.
В самом DirectX есть пример с динамическим источником света, создаваемым с их помощью, а про генерацию на произвольном MESHе см. на http:\\www.gametutorias.com. Особенно "xengine".
Rayden добавил(а) в нет данных
А у меня есть несколько вопросов. Я старый и глупый 24-х летний дяденька. И я не знаю ничего, а именно:

1) как правильно прочитать анимацию в 3DS-файле. Просто примеры из интернета я НЕ понимаю.

2) как быстро реализовать расчёт столкновений 2-х MESH-ей. Сейчас я это делаю так: 1. заранее создаются OCT-TREE разбиения всего меша на части для быстрого доступа к нужным треугольникам. 2. создаётся набор рёбер всех треугольников другого меша. 3. рассчитываю точки пересечения рёбер одного меша с треугольниками другого и наоборот. 4. для каждой точки пересечения вычисляю глубину проникновения и относительную скорость. 5. Используя коэффициенты трения, упругости и демпфирования вычисляю силы и моменты сил, действующие на каждое тело. Можно ли это всё как-нибудь побыстрее делать?

3) Может быть не стоит делать расчёт физики очень точно? Я вообще-то всё хочу сделать что-нибудь типа гибрида "CrimsonLand" и "Пи..оры.SWF". А модели я рисовать только в 3DStudio Max умею.

4) Вроде всё нормально, но точный расчёт физики ОЧЕНЬ тормозит. Сейчас я это делаю численно. Знаю, что символьные методы синтеза уравнений движения гораздо круче, подскажите сироте, как их реализовать!

5) Можно ли быстро точно вычислить место пересечения луча с мешем скелетной анимации? Одна из причин, по которой я пока использую статичные меши, не умею на динамических вычислять место пересечения (где дырку от снаряда рисовать) Да и рисовать скелетную анимацию не пробовал пока.
Перейти в начало страницы
 
+Цитировать сообщение
someone
сообщение 25.11.2004 - 16:22
Unknown
****
орден III степени
Группа: Модератор
Сообщений: 405
Регистрация: 29.09.2003
Пользователь №: 74


"2) как быстро реализовать расчёт столкновений 2-х MESH-ей. Сейчас я это делаю так: 1. заранее создаются OCT-TREE разбиения всего меша на части для быстрого доступа к нужным треугольникам. 2. создаётся набор рёбер всех треугольников другого меша. 3. рассчитываю точки пересечения рёбер одного меша с треугольниками другого и наоборот. 4. для каждой точки пересечения вычисляю глубину проникновения и относительную скорость. 5. Используя коэффициенты трения, упругости и демпфирования вычисляю силы и моменты сил, действующие на каждое тело. Можно ли это всё как-нибудь побыстрее делать?"

Конечно можно, достаточно просто построить октодерево где будут bounding элементы. Т.е весь меш разбивается на части которые отличны от друг друга, выпирают итд, для них создать bounding volumы ( сферу\цилиндр\коробку ) . И рассчитывать столконовения для этих волюмов. Единственное что нужно придумать это, то как эти волюмы связать в систему единую, можно использовать joints.

" Можно ли быстро точно вычислить место пересечения луча с мешем скелетной анимации? Одна из причин, по которой я пока использую статичные меши, не умею на динамических вычислять место пересечения (где дырку от снаряда рисовать) Да и рисовать скелетную анимацию не пробовал пока."

Можно, аналогично предыдущему решению: построй волюмы на всё тело... ну допустим цилиндры на руки ноги, сферу на голову, на торс бокс. Затем трансформируй волюм в зависимости от положения костей в текущем кадре ( без растяжения, только поворот и смещение(если нужно) ). Ой... ошибся... по два цилиндра на каждую конечность (IMG:http://forum.netall.ru/style_emoticons/default/smile.gif) , а то ведь они гнутся... Вот с этими трансформированными волюмами и считай пересечение луча. Затем Найдёшь вершины близки к точке пересечения и расположишь там дырочку.

По поводу 3ds... я бы не стал его никогда использовать, лучше свой формат или стандартный X(экспортер есть в сдк). А так хз как там анимацию загружать...

....

Я думаю не стоит для такой игры заморачиватся на чёткую физику, достаточно физики реализованной на простых телах ( сферах, боксах, цилиндрах ). Если проект не коммерческий то идеально использовать готовый движок физики, на мой взгляд, самый шустрый, надёжный и лёгкий - Tokamak.
Перейти в начало страницы
 
+Цитировать сообщение
Darth Sidius
сообщение 23.02.2005 - 13:30
Звезда форума
****
орден II степени
Группа: Участник
Сообщений: 384
Регистрация: 7.10.2003
Пользователь №: 340


Подскажите плз как сделать Glow в DirectX. В первую очередь нужно для солнца. Очень желателен пример. Было бы вообще отлично если на Делфи, но можно и на С++.
Перейти в начало страницы
 
+Цитировать сообщение
Phoenix
сообщение 23.02.2005 - 13:36
void*
******
орден IV степени
Группа: Участник
Сообщений: 1631
Регистрация: 29.09.2003
Пользователь №: 45


D3D Tutorial: Point Sprite
Перейти в начало страницы
 
+Цитировать сообщение
Darth Sidius
сообщение 23.02.2005 - 13:57
Звезда форума
****
орден II степени
Группа: Участник
Сообщений: 384
Регистрация: 7.10.2003
Пользователь №: 340


Цитата(Phoenix @ 23.02.2005 - 13:36)
D3D Tutorial: Point Sprite

Думаю что это не совсем то, что мне нужно. Но всё равно спасибо. Такое хорошо пойдёт для звёзд. Мне был бы очень полезен пример с реализацией солнца, включая само освещение, блики там и т.п. В общем чтобы выглядело довольно реалистично. Хотелось бы чтобы было что-то похожее на ]]>это]]> (нарисовано в 3ds max)
Перейти в начало страницы
 
+Цитировать сообщение
someone
сообщение 24.02.2005 - 14:13
Unknown
****
орден III степени
Группа: Модератор
Сообщений: 405
Регистрация: 29.09.2003
Пользователь №: 74


Ну вот! Стоит только отлучится на пару дней и в этом разделе начинается жизнь (IMG:http://forum.netall.ru/style_emoticons/default/smile.gif) ... ненадолго правда, ну да ладно.

Способов сделать Glow много, вот несколько :
1. натянуть прозрачный квад с текстурой поверх объекта для которого делаешь глоу. Ну например если у тебя солнце то это должен быть размазанный кружок с определённым цветом... Это лобовой способ и он не всегда красив.

2. Рендерить в текстуру твой объект, затем размывать изображение в текстуре с помощью blur алгоритма, затем поверх полностью отрисованной сцены рисуешь квад с вершинами типа RHW ( уже трансформированными в screen-space ) и альфаблендингом, на этот квад кладёшь текстуру в которую ты рендерил объект ( текстура должна быть размером с viewport ). Не самый лучший способ для достижения красивой картинки, но попробовать стоит если нет возможности использовать шейдеры.

3. Рекомендую посмотреть решение от NVIDIA для Tron2.0, шейдеры и исходный код на С++ находятся в NVIDIA SDK 8.5, скачать его можно у меня. Да и вообще вещь полезная, сразу можно найти нужный эффект и понять как он реализовывается.

someone добавил в нет данных
Не дочитал твой пост до конца... извини. Насчёт солнца, там нет glow эффекта. Там комплексный эффект : сочетание starks, corona, flare и ray постпроцессинговых эффектов. Реализация будет зависит от того на каком железе ты хочешь запустить своё приложение и ещё от того какое качество предпочтительнее. Ну и естественно есть два пути: использовать последние технологии и не использовать их (IMG:http://forum.netall.ru/style_emoticons/default/smile.gif) .

Путь первый:
В 3dmax настраиваешь постпроцессинговые эффекты stark, ray, corona и flare для солнца. Рендеришь по отдельности в разные текстурки. Потом накладываешь поверх своего солнца прозрачными квадами ориентированными на камеру. Что касается lens-flare эффектов, то понадобится несколько текстурок этих "кружочков", они тоже будут наложены на прозрачные квады, только с RHW вершинами. Рассчитываем screen-space координаты солнца. Затем для каждого квада с lensflare рассчитываем положение на экране :

lensx = (screen_sun_position_x- screen_width * 0.5f ) * -0.15625f
lensy = (screen_sun_position_y- screen_height * 0.5f ) * 0.15625f

Ну что то вроде того, можешь придумать свой способ для позиционирования квадов lensа. Ну и если солнце видно на экране то ты просчитываешь всё что я написал выше и рисуешь....

Путь второй:
Природа stark, corona и ray эффектов состоит в рассеивании свет внутри стекловидного тела человеческого глаза. Учёные долго исследовали этот феномен, много интересных работ было опубликованно. Для того чтобы лучше понять как реалистично реализовать эти эффекты можно ознакомится, например с работой по этому адресу :
]]>ftp://10.0.96.90/Programming/+GameDevelop...laresFlares.pdf]]>
Так описан метод используемый для offline рендеринга. Но нам то realtime нужен.
Поэтому можно ввести некоторые упрощения, мы будем использовать случайные числа, заранее заданные параметры независящие от физических характеристик источника света ( длина лучиков для rays, их количество и цвет ).

И так:
Для stark понадобится количество линий, их длина, и вращение ( угол относительно оси Х screenspace-а.

Для "креста" у солнца ( вертикальная ромбовидная полоска ) понадобится длина лучика (IMG:http://forum.netall.ru/style_emoticons/default/smile.gif) .

Для corona можно использовать stark эффект только отсекать все пиксели находящиеся ближе чем R ( R - const ) от источника света. Ну да ландо, этот эффект для солнца не нужен.

Далее мы перед рендерингом генерируем случайные значения для углов в тех объектах в которых присутсвует это свойство, задаём длины лучиков различные размеры. Теперь начинаем рендеринг в текстуру с шейдерами. Вершинный по сути ничего не делает, только трансформирует вершину и передаёт одно значение в пиксельный - screenspace координату вершины. В пиксельном шейдере мы просматриваем объект, к примеру это stark ( структура данных с информацией о старке ). Для текущего пикселя смотрим находится ли здесь какой то из лучей данного старк объекта ( у нас есть длина, положение в скрин-спейсе этого старка ) и если находится, то задаём цвет из структуры старка для данного пиксела. Такая техника реализованная в примере из DX SDK 9.0c october 2004 "HDRLighting".

Удачи.
Перейти в начало страницы
 
+Цитировать сообщение
Darth Sidius
сообщение 24.02.2005 - 21:42
Звезда форума
****
орден II степени
Группа: Участник
Сообщений: 384
Регистрация: 7.10.2003
Пользователь №: 340


Цитата
Пачикали усё


Спасибо. Только на ФТП к тебе попасть никак не могу (IMG:http://forum.netall.ru/style_emoticons/default/sad.gif) Пишет слишком много юзеров (IMG:http://forum.netall.ru/style_emoticons/default/sad.gif) ((
Никогда не мог понять... зачем цитировать целую страницу непосредственно предшествующего поста? Тем более, ради одной строки, тем более - ей место в личке! Модератор, уж кому как ни Вам это знать! Phoenix


PS На мой фтп можно попасть есть постучатся ко мне в асе или в мирке

Перейти в начало страницы
 
+Цитировать сообщение
Venum
сообщение 14.01.2006 - 01:24
Продвинутый новичок
**

Группа: Участник
Сообщений: 29
Регистрация: 15.05.2005
Пользователь №: 8035


БиллБордные фонты , OGL ...

Как грамотнее реализовать ???
Перейти в начало страницы
 
+Цитировать сообщение
someone
сообщение 15.01.2006 - 01:41
Unknown
****
орден III степени
Группа: Модератор
Сообщений: 405
Регистрация: 29.09.2003
Пользователь №: 74


www.google.com

что вызывает у тебя вопрос?
создал DrawList для каждой буквы. Создал текстуру с шрифтом. Создал массив координат каждой буквы ((unsigned int)буква) индекс в этот массив. Генерируешь вектор вершин с нужными координатами и текстурными координатами по индексу. Рисуешь. Всё. Как два пальца обоссать.
Перейти в начало страницы
 
+Цитировать сообщение
Venum
сообщение 19.01.2006 - 00:19
Продвинутый новичок
**

Группа: Участник
Сообщений: 29
Регистрация: 15.05.2005
Пользователь №: 8035


Есть лист с квадами и натянутыми на них Текстурами с параметром GL_MODULATE , когда рисую в Ортогональной проэкции, все окей а когда рисую в Перспективе , они не отображаются, хадство пряма какоето

Как маштабировать ?? <- это я хотел спросить по сути (IMG:http://forum.netall.ru/style_emoticons/default/smile.gif)
Перейти в начало страницы
 
+Цитировать сообщение
someone
сообщение 23.01.2006 - 16:46
Unknown
****
орден III степени
Группа: Модератор
Сообщений: 405
Регистрация: 29.09.2003
Пользователь №: 74


Не надо в перспективе рисовать. Сначала рисуешь всю сцену, потом в орт.проекции рисуешь фонт. И всё. Масштабировать - два способа.
Первый. Создаёшь текстуру с шрифтом большего размера ( текстура разумеется тоже больше ) и пересчитываешь текстурные координаты для каждой буквы.
Второй. Тупо увеличиваешь размер квадов каждой буквы.
Перейти в начало страницы
 
+Цитировать сообщение
Дикая@динго
сообщение 23.01.2006 - 19:48
Продвинутый новичок
**

Группа: Участник
Сообщений: 28
Регистрация: 23.04.2005
Пользователь №: 7677


Кажется я не так настроил З-Буффер (IMG:http://forum.netall.ru/style_emoticons/default/huh.gif)
Сделал все по Туториалу но у тигра ноги видны через живот (IMG:http://forum.netall.ru/style_emoticons/default/rolleyes.gif) (IMG:http://forum.netall.ru/style_emoticons/default/rolleyes.gif) (IMG:http://forum.netall.ru/style_emoticons/default/rolleyes.gif)
да похоже задний план не обновляется...совсем
Какой это исправить???

Сообщение отредактировано Дикая@динго - 30.01.2006 - 16:43
Перейти в начало страницы
 
+Цитировать сообщение
Venum
сообщение 25.01.2006 - 01:13
Продвинутый новичок
**

Группа: Участник
Сообщений: 29
Регистрация: 15.05.2005
Пользователь №: 8035


Цитата(someone @ 23.01.2006 - 17:46)
Не надо в перспективе рисовать. Сначала рисуешь всю сцену, потом в орт.проекции рисуешь фонт. И всё. Масштабировать - два способа.
        Первый. Создаёшь текстуру с шрифтом большего размера ( текстура разумеется тоже больше ) и пересчитываешь текстурные координаты для каждой буквы.
        Второй.  Тупо увеличиваешь размер квадов каждой буквы.[/quote]

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

и о масштабировании ты мне нето сказал
как Размер квада построенного в Ортоганальной проэкции , оптимизировать для Проэкции <- это я хотел спросить

Работа с "Орто" фонтами у меня трудностей не вызывает

Venum добавил(а) в нет данных
нада отдельный форум создать по Гейм Деву, в одной теме как то неудобно общаца ...
Перейти в начало страницы
 
+Цитировать сообщение
someone
сообщение 25.01.2006 - 17:21
Unknown
****
орден III степени
Группа: Модератор
Сообщений: 405
Регистрация: 29.09.2003
Пользователь №: 74


"Venum добавил(а) в 1:13:18
нада отдельный форум создать по Гейм Деву, в одной теме как то неудобно общаца ..."

=) этим мало кто интересуется. смысла нет. www.gamedev.ru вот тебе форум.

Что касается билбордных фонтов. Используй обычную проекцию и рисуй свои квады в мировом пространстве, трансформируя каждый квад матрицей билборда.

]]>http://nehe.gamedev.net/data/articles/article.asp?article=19]]>

Говорил же тебе. google.com.


"как Размер квада построенного в Ортоганальной проэкции , оптимизировать для Проэкции <- это я хотел спросить"

перечитай что ты написал, я не понимаю вопроса.
Перейти в начало страницы
 
+Цитировать сообщение
Venum
сообщение 26.01.2006 - 01:15
Продвинутый новичок
**

Группа: Участник
Сообщений: 29
Регистрация: 15.05.2005
Пользователь №: 8035


когда я строю Квад листа в орто я ввожу примерно такие кординаты 0, 0; 0, 16; 16, 16; 16 , 0 z корд задается при выводе фанта сдвигом матрицы...

а когда я вывожу в проэкции этот квад либо очень большой либо очень маленьки, тоесть я теряюсь в пространстве
ЗЫ: функция вывода текста в пространстве неимеет никакова отношения к функции вывода текста в Орт Проэкции

Сообщение отредактировано Venum - 26.01.2006 - 01:17
Перейти в начало страницы
 
+Цитировать сообщение
someone
сообщение 27.01.2006 - 10:05
Unknown
****
орден III степени
Группа: Модератор
Сообщений: 405
Регистрация: 29.09.2003
Пользователь №: 74


Выводи текст как щас выводишь, просто найди зависимость между разрешением экрана и расстоянием надписи до камеры и скаль по формуле которую выведешь (IMG:http://forum.netall.ru/style_emoticons/default/smile.gif)

Я никогда не делал билдордные фонты, но думаю в инете посмотреть можно, чего тут спрашивать ?

Сообщение отредактировано someone - 27.01.2006 - 10:06
Перейти в начало страницы
 
+Цитировать сообщение
Grom
сообщение 28.01.2006 - 01:46
Продвинутый новичок
**

Группа: Участник
Сообщений: 43
Регистрация: 26.04.2004
Пользователь №: 3330


Цитата(Venum @ 26.01.2006 - 01:15)
когда я строю Квад листа в орто я ввожу примерно такие кординаты 0, 0; 0, 16; 16, 16; 16 , 0  z корд задается при выводе фанта сдвигом матрицы...

а когда я вывожу в проэкции этот квад либо очень большой либо очень маленьки, тоесть я теряюсь в пространстве
ЗЫ: функция вывода текста в пространстве неимеет никакова отношения к функции вывода текста в Орт Проэкции


А зачем использовать 3х мерные вершины? Используй формат примерно как в примере - ]]>http://msdn.microsoft.com/archive/default....als/2/step1.asp]]>

в данном случае кординаты - просто 2Д координаты на нормированной плоскости экрана
Перейти в начало страницы
 
+Цитировать сообщение
someone
сообщение 28.01.2006 - 12:51
Unknown
****
орден III степени
Группа: Модератор
Сообщений: 405
Регистрация: 29.09.2003
Пользователь №: 74


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

6 страниц V  < 1 2 3 4 5 > » 
Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 29.05.2020 - 19:21