3d Graphics, DirectX, OpenGL, Software |
Здравствуйте, гость ( Вход | Регистрация )
3d Graphics, DirectX, OpenGL, Software |
8.09.2004 - 13:57
Вставить ник | Быстрая цитата | Сообщение
#41
|
|
Unknown Группа: Модератор Сообщений: 405 Регистрация: 29.09.2003 Пользователь №: 74 |
Ещё вот что, я не понял, как это должно выглядеть, чтоб ты сказал что вот так правильно и я так хотел?
|
|
|
8.09.2004 - 18:40
Вставить ник | Быстрая цитата | Сообщение
#42
|
|
Энтузиаст Группа: Участник Сообщений: 462 Регистрация: 30.09.2003 Пользователь №: 143 |
Как на рисунке с нечерным фоном.
|
|
|
18.11.2004 - 21:18
Вставить ник | Быстрая цитата | Сообщение
#43
|
||
Постоялец форума Группа: Участник Сообщений: 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) Можно ли быстро точно вычислить место пересечения луча с мешем скелетной анимации? Одна из причин, по которой я пока использую статичные меши, не умею на динамических вычислять место пересечения (где дырку от снаряда рисовать) Да и рисовать скелетную анимацию не пробовал пока. |
|
|
||
25.11.2004 - 16:22
Вставить ник | Быстрая цитата | Сообщение
#44
|
|
Unknown Группа: Модератор Сообщений: 405 Регистрация: 29.09.2003 Пользователь №: 74 |
"2) как быстро реализовать расчёт столкновений 2-х MESH-ей. Сейчас я это делаю так: 1. заранее создаются OCT-TREE разбиения всего меша на части для быстрого доступа к нужным треугольникам. 2. создаётся набор рёбер всех треугольников другого меша. 3. рассчитываю точки пересечения рёбер одного меша с треугольниками другого и наоборот. 4. для каждой точки пересечения вычисляю глубину проникновения и относительную скорость. 5. Используя коэффициенты трения, упругости и демпфирования вычисляю силы и моменты сил, действующие на каждое тело. Можно ли это всё как-нибудь побыстрее делать?"
Конечно можно, достаточно просто построить октодерево где будут bounding элементы. Т.е весь меш разбивается на части которые отличны от друг друга, выпирают итд, для них создать bounding volumы ( сферу\цилиндр\коробку ) . И рассчитывать столконовения для этих волюмов. Единственное что нужно придумать это, то как эти волюмы связать в систему единую, можно использовать joints. " Можно ли быстро точно вычислить место пересечения луча с мешем скелетной анимации? Одна из причин, по которой я пока использую статичные меши, не умею на динамических вычислять место пересечения (где дырку от снаряда рисовать) Да и рисовать скелетную анимацию не пробовал пока." Можно, аналогично предыдущему решению: построй волюмы на всё тело... ну допустим цилиндры на руки ноги, сферу на голову, на торс бокс. Затем трансформируй волюм в зависимости от положения костей в текущем кадре ( без растяжения, только поворот и смещение(если нужно) ). Ой... ошибся... по два цилиндра на каждую конечность , а то ведь они гнутся... Вот с этими трансформированными волюмами и считай пересечение луча. Затем Найдёшь вершины близки к точке пересечения и расположишь там дырочку. По поводу 3ds... я бы не стал его никогда использовать, лучше свой формат или стандартный X(экспортер есть в сдк). А так хз как там анимацию загружать... .... Я думаю не стоит для такой игры заморачиватся на чёткую физику, достаточно физики реализованной на простых телах ( сферах, боксах, цилиндрах ). Если проект не коммерческий то идеально использовать готовый движок физики, на мой взгляд, самый шустрый, надёжный и лёгкий - Tokamak. |
|
|
23.02.2005 - 13:30
Вставить ник | Быстрая цитата | Сообщение
#45
|
|
Звезда форума Группа: Участник Сообщений: 384 Регистрация: 7.10.2003 Пользователь №: 340 |
Подскажите плз как сделать Glow в DirectX. В первую очередь нужно для солнца. Очень желателен пример. Было бы вообще отлично если на Делфи, но можно и на С++.
|
|
|
23.02.2005 - 13:36
Вставить ник | Быстрая цитата | Сообщение
#46
|
|
void* Группа: Участник Сообщений: 1631 Регистрация: 29.09.2003 Пользователь №: 45 |
D3D Tutorial: Point Sprite
|
|
|
23.02.2005 - 13:57
Вставить ник | Быстрая цитата | Сообщение
#47
|
|
Звезда форума Группа: Участник Сообщений: 384 Регистрация: 7.10.2003 Пользователь №: 340 |
Цитата(Phoenix @ 23.02.2005 - 13:36) D3D Tutorial: Point Sprite Думаю что это не совсем то, что мне нужно. Но всё равно спасибо. Такое хорошо пойдёт для звёзд. Мне был бы очень полезен пример с реализацией солнца, включая само освещение, блики там и т.п. В общем чтобы выглядело довольно реалистично. Хотелось бы чтобы было что-то похожее на ]]>это]]> (нарисовано в 3ds max) |
|
|
24.02.2005 - 14:13
Вставить ник | Быстрая цитата | Сообщение
#48
|
|
Unknown Группа: Модератор Сообщений: 405 Регистрация: 29.09.2003 Пользователь №: 74 |
Ну вот! Стоит только отлучится на пару дней и в этом разделе начинается жизнь ... ненадолго правда, ну да ладно.
Способов сделать Glow много, вот несколько : 1. натянуть прозрачный квад с текстурой поверх объекта для которого делаешь глоу. Ну например если у тебя солнце то это должен быть размазанный кружок с определённым цветом... Это лобовой способ и он не всегда красив. 2. Рендерить в текстуру твой объект, затем размывать изображение в текстуре с помощью blur алгоритма, затем поверх полностью отрисованной сцены рисуешь квад с вершинами типа RHW ( уже трансформированными в screen-space ) и альфаблендингом, на этот квад кладёшь текстуру в которую ты рендерил объект ( текстура должна быть размером с viewport ). Не самый лучший способ для достижения красивой картинки, но попробовать стоит если нет возможности использовать шейдеры. 3. Рекомендую посмотреть решение от NVIDIA для Tron2.0, шейдеры и исходный код на С++ находятся в NVIDIA SDK 8.5, скачать его можно у меня. Да и вообще вещь полезная, сразу можно найти нужный эффект и понять как он реализовывается. someone добавил в нет данных Не дочитал твой пост до конца... извини. Насчёт солнца, там нет glow эффекта. Там комплексный эффект : сочетание starks, corona, flare и ray постпроцессинговых эффектов. Реализация будет зависит от того на каком железе ты хочешь запустить своё приложение и ещё от того какое качество предпочтительнее. Ну и естественно есть два пути: использовать последние технологии и не использовать их . Путь первый: В 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-а. Для "креста" у солнца ( вертикальная ромбовидная полоска ) понадобится длина лучика . Для corona можно использовать stark эффект только отсекать все пиксели находящиеся ближе чем R ( R - const ) от источника света. Ну да ландо, этот эффект для солнца не нужен. Далее мы перед рендерингом генерируем случайные значения для углов в тех объектах в которых присутсвует это свойство, задаём длины лучиков различные размеры. Теперь начинаем рендеринг в текстуру с шейдерами. Вершинный по сути ничего не делает, только трансформирует вершину и передаёт одно значение в пиксельный - screenspace координату вершины. В пиксельном шейдере мы просматриваем объект, к примеру это stark ( структура данных с информацией о старке ). Для текущего пикселя смотрим находится ли здесь какой то из лучей данного старк объекта ( у нас есть длина, положение в скрин-спейсе этого старка ) и если находится, то задаём цвет из структуры старка для данного пиксела. Такая техника реализованная в примере из DX SDK 9.0c october 2004 "HDRLighting". Удачи. |
|
|
24.02.2005 - 21:42
Вставить ник | Быстрая цитата | Сообщение
#49
|
|
Звезда форума Группа: Участник Сообщений: 384 Регистрация: 7.10.2003 Пользователь №: 340 |
Цитата Пачикали усё Спасибо. Только на ФТП к тебе попасть никак не могу Пишет слишком много юзеров (( Никогда не мог понять... зачем цитировать целую страницу непосредственно предшествующего поста? Тем более, ради одной строки, тем более - ей место в личке! Модератор, уж кому как ни Вам это знать! Phoenix PS На мой фтп можно попасть есть постучатся ко мне в асе или в мирке |
|
|
14.01.2006 - 01:24
Вставить ник | Быстрая цитата | Сообщение
#50
|
|
Продвинутый новичок Группа: Участник Сообщений: 29 Регистрация: 15.05.2005 Пользователь №: 8035 |
БиллБордные фонты , OGL ...
Как грамотнее реализовать ??? |
|
|
15.01.2006 - 01:41
Вставить ник | Быстрая цитата | Сообщение
#51
|
|
Unknown Группа: Модератор Сообщений: 405 Регистрация: 29.09.2003 Пользователь №: 74 |
www.google.com
что вызывает у тебя вопрос? создал DrawList для каждой буквы. Создал текстуру с шрифтом. Создал массив координат каждой буквы ((unsigned int)буква) индекс в этот массив. Генерируешь вектор вершин с нужными координатами и текстурными координатами по индексу. Рисуешь. Всё. Как два пальца обоссать. |
|
|
19.01.2006 - 00:19
Вставить ник | Быстрая цитата | Сообщение
#52
|
|
Продвинутый новичок Группа: Участник Сообщений: 29 Регистрация: 15.05.2005 Пользователь №: 8035 |
Есть лист с квадами и натянутыми на них Текстурами с параметром GL_MODULATE , когда рисую в Ортогональной проэкции, все окей а когда рисую в Перспективе , они не отображаются, хадство пряма какоето
Как маштабировать ?? <- это я хотел спросить по сути |
|
|
23.01.2006 - 16:46
Вставить ник | Быстрая цитата | Сообщение
#53
|
|
Unknown Группа: Модератор Сообщений: 405 Регистрация: 29.09.2003 Пользователь №: 74 |
Не надо в перспективе рисовать. Сначала рисуешь всю сцену, потом в орт.проекции рисуешь фонт. И всё. Масштабировать - два способа.
Первый. Создаёшь текстуру с шрифтом большего размера ( текстура разумеется тоже больше ) и пересчитываешь текстурные координаты для каждой буквы. Второй. Тупо увеличиваешь размер квадов каждой буквы. |
|
|
23.01.2006 - 19:48
Вставить ник | Быстрая цитата | Сообщение
#54
|
|
Продвинутый новичок Группа: Участник Сообщений: 28 Регистрация: 23.04.2005 Пользователь №: 7677 |
Кажется я не так настроил З-Буффер
Сделал все по Туториалу но у тигра ноги видны через живот да похоже задний план не обновляется...совсем Какой это исправить??? Сообщение отредактировано Дикая@динго - 30.01.2006 - 16:43 |
|
|
25.01.2006 - 01:13
Вставить ник | Быстрая цитата | Сообщение
#55
|
||
Продвинутый новичок Группа: Участник Сообщений: 29 Регистрация: 15.05.2005 Пользователь №: 8035 |
Цитата(someone @ 23.01.2006 - 17:46) Не надо в перспективе рисовать. Сначала рисуешь всю сцену, потом в орт.проекции рисуешь фонт. И всё. Масштабировать - два способа.
Первый. Создаёшь текстуру с шрифтом большего размера ( текстура разумеется тоже больше ) и пересчитываешь текстурные координаты для каждой буквы. Второй. Тупо увеличиваешь размер квадов каждой буквы.[/quote] То о чем ты говоришь это простые фонты, а мне нада БиллБордные, фонты которые мона нарисовать в любой точке Сцены, в тоже время они смотрют на камеру(из определения термина Billboard) и о масштабировании ты мне нето сказал как Размер квада построенного в Ортоганальной проэкции , оптимизировать для Проэкции <- это я хотел спросить Работа с "Орто" фонтами у меня трудностей не вызывает Venum добавил(а) в нет данных нада отдельный форум создать по Гейм Деву, в одной теме как то неудобно общаца ... |
|
|
||
25.01.2006 - 17:21
Вставить ник | Быстрая цитата | Сообщение
#56
|
|
Unknown Группа: Модератор Сообщений: 405 Регистрация: 29.09.2003 Пользователь №: 74 |
"Venum добавил(а) в 1:13:18
нада отдельный форум создать по Гейм Деву, в одной теме как то неудобно общаца ..." =) этим мало кто интересуется. смысла нет. www.gamedev.ru вот тебе форум. Что касается билбордных фонтов. Используй обычную проекцию и рисуй свои квады в мировом пространстве, трансформируя каждый квад матрицей билборда. ]]>http://nehe.gamedev.net/data/articles/article.asp?article=19]]> Говорил же тебе. google.com. "как Размер квада построенного в Ортоганальной проэкции , оптимизировать для Проэкции <- это я хотел спросить" перечитай что ты написал, я не понимаю вопроса. |
|
|
26.01.2006 - 01:15
Вставить ник | Быстрая цитата | Сообщение
#57
|
|
Продвинутый новичок Группа: Участник Сообщений: 29 Регистрация: 15.05.2005 Пользователь №: 8035 |
когда я строю Квад листа в орто я ввожу примерно такие кординаты 0, 0; 0, 16; 16, 16; 16 , 0 z корд задается при выводе фанта сдвигом матрицы...
а когда я вывожу в проэкции этот квад либо очень большой либо очень маленьки, тоесть я теряюсь в пространстве ЗЫ: функция вывода текста в пространстве неимеет никакова отношения к функции вывода текста в Орт Проэкции Сообщение отредактировано Venum - 26.01.2006 - 01:17 |
|
|
27.01.2006 - 10:05
Вставить ник | Быстрая цитата | Сообщение
#58
|
|
Unknown Группа: Модератор Сообщений: 405 Регистрация: 29.09.2003 Пользователь №: 74 |
Выводи текст как щас выводишь, просто найди зависимость между разрешением экрана и расстоянием надписи до камеры и скаль по формуле которую выведешь
Я никогда не делал билдордные фонты, но думаю в инете посмотреть можно, чего тут спрашивать ? Сообщение отредактировано someone - 27.01.2006 - 10:06 |
|
|
28.01.2006 - 01:46
Вставить ник | Быстрая цитата | Сообщение
#59
|
|
Продвинутый новичок Группа: Участник Сообщений: 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Д координаты на нормированной плоскости экрана |
|
|
28.01.2006 - 12:51
Вставить ник | Быстрая цитата | Сообщение
#60
|
|
Unknown Группа: Модератор Сообщений: 405 Регистрация: 29.09.2003 Пользователь №: 74 |
Он запарится проецировать, ему же к объектом надо привязывать надписи, насколько я понял.
|
|
|
Текстовая версия | Сейчас: 26.12.2024 - 19:10 |