![]() |
|
Модераторы: Rickert |
![]()
|
|
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Как реализовать рисование объекта поверх всех других? То есть как это делают например
в шутерах от первого лица: руки персонажа и оружие никогда не пройдут сквозь другие объекты и не пересекуться (не находятся в буфере глубины, если можно так выразиться)... |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 6 Всего: 52 |
EgoBrain, в половине шутеров эти самые руки - тоже объекты, зафиксированные за координатами камеры и направлением взгляда и они таки пересекать окружающий мир могут.
Смысл по сабжу: рисуем окружающий мир, отключаем буффер глубины, рисуем модель рук (как в шутерах), включаем буффер глубины, выводим кадр. Примерно и на вскидку так будет. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
У меня была точно такая же идея. Наверное я не правильно алгоритм строил...
Хороша была задумка, да ведать я ее до ума не довел, или она нерабочая... руки все равно сквозь проходят! Вспомнил, надаже вроде сбрасывать устройство Reset(), можно ли это делать при формировании сцены? В общем мне кажется Вам нада сделать проект и самому попробовать, чтоб мне потом сказать как делать Добавлено через 13 минут и 51 секунду З.Ы. По поводу шутеров, наверное Вы всетаки мало играли в классику (типа Counter-Strike), там модель любого персонажа и то, что видет игрок от первого лица разные вещи, персонаж (если смотреть со стороны) может вполне себе проходить сковзь другие объекты, если подойдет вплотную, а от первого лица в то же время - нет, то есть это разные объеты и раздельно рисуются (как то хитро), там даже они наверное плоские. Это сообщение отредактировал(а) EgoBrain - 14.1.2009, 14:29 |
|||
|
||||
| Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Гугель подсказывает мне, что EnableAutoDepthStencil = true создает DepthStencilSurface. А EnableAutoDepthStencil = false - не создает
Чтобы включать-отключать проверку глубины, есть RenderState.DepthBufferFunction. Юзайте его. ЗЫ Отключать проверку наверное не стоит. Лучше после отрисовки мира очистить буфер глубины и тогда рисовать руки. Это сообщение отредактировал(а) Rpahut - 15.1.2009, 00:44 --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 6 Всего: 52 |
Померяемся у кого длинее? Я не сказал что у всех шутеров оружие проваливается. Я сказал: что у некоторых. +иногда идёт вообще реализации столкновений таких моделей. А что это за язык такой, на котором вы пишите? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Вопрос и издевкой или подковыркой? В посте же идет блок "Код C#". Rpahut, можно выписку примера? |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 6 Всего: 52 |
Пардон, у меня сейчас Опера, она криво работает с тэгами кода, у меня он выделен в просто "Код" -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Нельзя. Я с C# незнаком, равно как и с DX и его производными. Если это XNA то вам суда. --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Вопрос пока остается открытым...
|
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 6 Всего: 61 |
||||
|
||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Да а причем тут язык? Мне алгоритм нужен для решения задачи, все вполне достижимо на DX 9.0 c... |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 6 Всего: 61 |
EgoBrain, где ты увидел слово "язык"? речь идет об используемом для 3D фреймворке. MDX НЕ развивается и НЕ поддерживается Микрософтом, в отличие от XNA либо SlimDX. Но всё они поддерживают DX 9.0c
тебе же ответили, что надо смотреть RenderState.DepthBufferFunction. Примеры есть в MSDN, который еще еще никто не отменял. На худой конец можно просто погуглить это словосочетание. Это сообщение отредактировал(а) arilou - 23.1.2009, 15:52 |
|||
|
||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Друзья, вы были правы, ответ был дан, просто у меня руки не дошли, чайники как всегда хотят чтоб им пальцем показали. Вам спасибо за терпимость с нами
Кстати по нескольку раз повторять не нужно, что MDX не поддерживается MS-ом, я это и так прекрасно знаю, но разве он будет вреден для изучения? Имхо перейти после него на ХНА или обычный/нормальный директ будет проще, чем без знаний MDX, но дело не в этом, просто я уже начал проект на MDX для института. Кому интересно: в MDX у RenderState есть свойство ZBufferEnable, легким движением рук ставим значение в false, и ничего больше не нада, никаких функций вызывать! И еще один момент для директщиков всех мастей: между выключением-включением буфера глубины необходимо перестроить порядок вершин в устройстве на CounterClockwise (против часовой стрелки), конечно это не даст 100% желаемого результата, но максимально приблизит к нему. Всем спасибо, думаю можно закрыть тему. Первая мысль после полученого: "Отлично, то что нада!" Пишите под директ и наслаждайтесь! З.Ы. Это сообщение отредактировал(а) EgoBrain - 25.1.2009, 13:58 |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 6 Всего: 61 |
но все таки лучше сделать, чтобы соотетствовать правилам форума |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 6 Всего: 52 |
EgoBrain, пометь тему, как решённую.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |