2 точки один меш

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

Модератор: Mikle

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

2 точки один меш

Сообщение DirectXManiac » 29.06.2006 (Чт) 0:11

Есть проблемка. Пишу физику авто и столкнулся с проблемой:
Есть точка - передняя ось
Есть 2 точка - задняя ось
Есть 4 колеса - меши,которые расположены соосветственно с точками.
Нужно приделать машину чтоб она как бы была прикреплена к передней и задней оси и от этого зависил угол поворота.
#define ROFL 0xDDDD

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

Сообщение Mikle » 30.06.2006 (Пт) 7:58

Ведь все уже готово, только лепи между собой модули :wink:
Это заняло где-то полчаса, основная задержка из-за путаницы с системами координат, в модуле физики ось Z была направлена вверх, а в ландшафте это ось Y.
Не забывай, что физика остается 2D, поэтому если сделать сильно гористый ландшафт - будет выглядеть неестественно.

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

Сообщение DirectXManiac » 30.06.2006 (Пт) 12:08

Спасибо большое!!!!! :)
#define ROFL 0xDDDD

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

Сообщение Mikle » 04.07.2006 (Вт) 8:37

DirectXManiac
В этом примере замени строку:

Код: Выделить всё
  LS.Render x - 16, z - 16, 0, 0

на тукую:
Код: Выделить всё
  LS.Render x, z - 8, 0, Atn(3 / -8)

То есть, чтобы ландшафт отображался правильно, в него нужно передавать позицию, направление и наклон камеры.

Если хочешь, чтобы одна текстура без повторов растянулась на весь ландшафт - ставь ScaleTex для этой стадии равным 1/"размер сетки ландшафта". Естественно это сработает только на квадратном ландшафте.

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

Сообщение DirectXManiac » 04.07.2006 (Вт) 9:31

т.е. если я использую например ланд с катрой высот 256х256 то мне нужно сделать текстуру 256х256 и прописать в ScaleTex0 1/256?
Спасибо! Там всё работает! Вот только как отобразить обороты? :(
#define ROFL 0xDDDD

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

Сообщение Mikle » 04.07.2006 (Вт) 11:58

DirectXManiac
т.е. если я использую например ланд с катрой высот 256х256 то мне нужно сделать текстуру 256х256 и прописать в ScaleTex0 1/256?

Верно, только текстура может быть любого размера, не обязательно 256*256.
Про обороты (тебе нужен тахометр?) завтра напишу.

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

Сообщение DirectXManiac » 04.07.2006 (Вт) 14:40

ОК!
#define ROFL 0xDDDD

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

Сообщение DirectXManiac » 04.07.2006 (Вт) 16:58

Всё решено! Motion Blur + All World Reflection Base On Cube Mapped Surface Rendering + твоя физика и ланд = вот:
P.S надо только небо найти темнее чтобы не сильно бросалось в глаза отражение!
У вас нет доступа для просмотра вложений в этом сообщении.
#define ROFL 0xDDDD

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

Сообщение Mikle » 04.07.2006 (Вт) 17:46

DirectXManiac
Чтобы ослабить отражения, их можно умножить на TextureFactor, величиной TextureFactor подбираешь коэффициент отражений. Потом добавляешь к этому Diffuse от материала, чтобы у машины был цвет и ее можно было осветить.
И еще похоже, что матрицу текстуры отражений нужно крутануть, а то отражение земли справа, а неба - слева.
Интересно было бы посмотреть рабочую демку.

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

Сообщение DirectXManiac » 04.07.2006 (Вт) 21:20

Щас в личку кину.... Щас поверчу матрицу и покажу что получилось!
#define ROFL 0xDDDD

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

Сообщение Mikle » 06.07.2006 (Чт) 9:51

DirectXManiac
Да... в "демке" нет модели машины, нет файла "refl.jpg", возможно нет чего-то еще - не проверял дальше. Зато "Down.jpg" записан два раза.
Для тахометра добавь в форму декларацию:
Код: Выделить всё
Const MaxTaxo = 8000       'Макс. обороты двигателя
Public Taxo As Single      'Обороты двигателя

и в Moving поменяй:
Код: Выделить всё
  'Расчет сил
  If KPPstep = 0 Then
    FrcY = 0
    tmp = Accel
  Else
    tmp = KPP(KPPstep) * CarSpeed * Accel
    FrcY = (tmp - SpY) * Power / (KPP(KPPstep) * KPP(KPPstep))
    tmp = Accel * Abs(SpY / tmp)
  End If

  FrcY = FrcY - (Break / DTime + kAF) * Sgn(SpY)
  FrcX = (-SpY * Steer * carExBack / Radius - SpX) / DTime

  If Abs(FrcX) > MaxFRCX Then FrcX = MaxFRCX * Sgn(FrcX): tmp = (Accel + tmp) * 0.5 'занос
  If Abs(FrcY) > MaxFRCY Then FrcY = MaxFRCY * Sgn(FrcY): tmp = (Accel + tmp) * 0.5 'пробуксовка
  If tmp < 0.07 Then tmp = 0.07
  If tmp > 1.2 Then tmp = 1.2
  Taxo = tmp * MaxTaxo * DTime * 8 + Taxo * (1 - DTime * 8)

  If KPPstep = 0 Then tmp = 0 Else tmp = 2 / (Abs(KPP(KPPstep)) * CarSpeed)
  RotFRC = (Steer * SpY / Radius - SpeedAlpha + SpX * Accel * tmp) / DTime
  tmp = MaxRotFRC * (CarSpeed - SpY) / CarSpeed
  If Abs(RotFRC) > tmp Then RotFRC = Sgn(RotFRC) * tmp

  'Вычисление наклонов

Taxo - обороты движка.

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

Сообщение DirectXManiac » 06.07.2006 (Чт) 13:59

Спасибо! А разве relf.jpg нужен? Щас изменю и выложу файлы которых не хватает!
#define ROFL 0xDDDD

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

Сообщение DirectXManiac » 06.07.2006 (Чт) 14:07

Вот дополнительные файлы которых не хватает!
А поподробнее можешь рассказать про ослабление отражений? Просто когда я ставлю D3DDevice.SetTextureStageState 1, D3DTSS_COLORARG2, D3DTA_TFACTOR
то у меня просто экран становиться цвета ТЕКСТУРФАКТОРА и пропааюсь отражения... Может надо так:
D3DDevice.SetTextureStageState 1, D3DTSS_ALPHARG1, D3DTA_TFACTOR
и добавить материал с диффуз цветом! Кстати Какой цвет надо ставить? Серый?
У вас нет доступа для просмотра вложений в этом сообщении.
#define ROFL 0xDDDD

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

Сообщение Mikle » 06.07.2006 (Чт) 16:52

когда я ставлю D3DDevice.SetTextureStageState 1, D3DTSS_COLORARG2, D3DTA_TFACTOR
то у меня просто экран становиться цвета ТЕКСТУРФАКТОРА

А если дописать:
D3DDevice.SetTextureStageState 1, D3DTSS_COLOROP, D3DOP_MODULATE

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

Сообщение DirectXManiac » 06.07.2006 (Чт) 17:37

Дык у меня стоит D3DTOP_ADDSMOOTH! Щас попробую...
#define ROFL 0xDDDD

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

Сообщение DirectXManiac » 06.07.2006 (Чт) 17:42

не помогло! Пример с сорцами у тебя есть... Если будет время попробуй сделать чтобы CubeMapping давал нормальное отражение(матрицы)
#define ROFL 0xDDDD

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

Сообщение Mikle » 07.07.2006 (Пт) 13:11

DirectXManiac
Наработку отправил.
Ты, смотрю, поменял в физике все константы на какие-то нереальные, а все потому, что у тебя модель машины большая - больше восьми (метров), и тебе казалось, что скорости нет.

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

Сообщение DirectXManiac » 07.07.2006 (Пт) 14:48

ДА! надо поменьше Scale сделать! :)
#define ROFL 0xDDDD

DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Сообщение DKbelRoma » 25.11.2007 (Вс) 21:50

люди кинте готовую программу плиззз... Так круто получилось очень-очень хочется посмотреть! :oops:
«Не важно, откуда ты. Важно - где ты.»

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

Сообщение DirectXManiac » 11.12.2007 (Вт) 21:36

DKbelRoma
Стучи в новую аську все что интересно покажу, может дажу предложу что-то :)
368-567-404
#define ROFL 0xDDDD


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

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

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

    TopList