Зацените 2: Эволюция

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

Модератор: Mikle

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Зацените 2: Эволюция

Сообщение StimorolD3DX » 10.05.2007 (Чт) 20:22

Вот: :shock:
Что нового: почти все
Сразу возникает вопрос как сделать что б когда есть тукстура кирпичей что б создавался эффект (как например в сталкере) что эти кирпичи имеют обьем и вылазят наружу, сделал бамп меппинг но эффект минимален...
У вас нет доступа для просмотра вложений в этом сообщении.

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

Сообщение keks-n » 10.05.2007 (Чт) 21:17

Аффтар! Убери HARDWARE_VERTEXPROCESSING(или сделай проверку на его наличие). Ибо не запускается. И вообще, конфигурилка должна сама узнавать, что держит видюха.
Изображение

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 11.05.2007 (Пт) 10:12

Гониш? Я в игре написал если при D3DCREATE_HARDWARE_VERTEXPROCESSING D3DDevice не создалось то создается при D3DCREATE_SOFTWARE_VERTEXPROCESSING, странно
Да и толку если нет поддержки D3DCREATE_HARDWARE_VERTEXPROCESSING то лучше вооще не запускать

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

Сообщение keks-n » 11.05.2007 (Пт) 14:00

В конфигураторе снято ВСЁ. Не стартует - не хочет создавать D3DDevice.
Изображение

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 11.05.2007 (Пт) 14:23

Всё запускается и работает нормально.
PIV 2.8 Radeon 9600
Достоинств не заметил:
1) Туман он и в африке туман - одной командой...
2) Bump без тумана натягивается на небо...
3) Без тумана освещения нет
4) Освещение d3dlight ?
5) Теней не увидел...
6) Отражение - stencil buffer в самой простой интерпретации

В обшем может я просто не понял цель данного примера... Просто показать набор встроенных функций d3d ?? Удалось на троечку.

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 11.05.2007 (Пт) 16:43

djalex777 писал(а):Всё запускается и работает нормально.
PIV 2.8 Radeon 9600
Достоинств не заметил:
1) Туман он и в африке туман - одной командой...
2) Bump без тумана натягивается на небо...
3) Без тумана освещения нет
4) Освещение d3dlight ?
5) Теней не увидел...
6) Отражение - stencil buffer в самой простой интерпретации

В обшем может я просто не понял цель данного примера... Просто показать набор встроенных функций d3d ?? Удалось на троечку.


1) -
2) шутиш?
3) незнаю как у тебя у мну есть
4) да, а каое еще?
5) жаль.. они есть...
6) не, просто рисуется уровень толко значения всех y=-y
:!:

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 11.05.2007 (Пт) 18:40

StimorolD3DX
Почему от твоей демки у меня заболела голова. Наверное,.. совпадение.

А по делу:
1) Почему я застреваю в стенах? У стен что коэффициент трения равен бесконечнсти? (Хотя я уверен что им у тебя не пахнет)

2) Что за акробатические трюки вместо прышков совершает камера, когда я жму пробел?

3) Ты сам то пробовал подниматься по своей "лестнице"

4) Либо что то не так но bump mapping какой то ну очень кривой.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение DirectXManiac » 11.05.2007 (Пт) 20:19

Начну сначала...
1) теней нет - это жалкие лайтмэпы... никакой динамики...
2) это бамп мэппинг? гм...
3) вообщем так неплохо, но зачем такая кривая камера? это все делается подругому
#define ROFL 0xDDDD

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 12.05.2007 (Сб) 10:45

DirectXManiac писал(а):Начну сначала...
1) теней нет - это жалкие лайтмэпы... никакой динамики...
2) это бамп мэппинг? гм...
3) вообщем так неплохо, но зачем такая кривая камера? это все делается подругому


1) Откуда такая информация?
2) Прикинь?
3) Кривая это какая? А как еще мона нормально сделать кроме D3dxmatrixrotation? Если по другому то скажи как буду знать

Не говори глупости, в следующий раз убедись что точно знаеш то что говориш :lol:

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 12.05.2007 (Сб) 10:47

Хакер писал(а):StimorolD3DX
Почему от твоей демки у меня заболела голова. Наверное,.. совпадение.

А по делу:
1) Почему я застреваю в стенах? У стен что коэффициент трения равен бесконечнсти? (Хотя я уверен что им у тебя не пахнет)

2) Что за акробатические трюки вместо прышков совершает камера, когда я жму пробел?

3) Ты сам то пробовал подниматься по своей "лестнице"

4) Либо что то не так но bump mapping какой то ну очень кривой.


1) Я не застреваю, незнаю что у тебя такое
2) Обычные прижки, ничего особенного Player.y=player.y+0.01
3) пробовал, нормально

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 12.05.2007 (Сб) 12:09

StimorolD3DX

1) Иди в стену по углом 45 градусов. Когда камера столкнётся со стеной - она вообще не будет двигаться. А должна... со скоростью Обычная скорость * sin(угол_между_луч_направления_камеры_и_нормалью_стены)

2) Да, в этом и проблема.

3) Судя по тому что тебя устраивает твоё же поведение прыжков - столь кривое поднятие по лестнице тебя тоже должно устраивать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение keks-n » 12.05.2007 (Сб) 12:56

2) Обычные прижки, ничего особенного Player.y=player.y+0.01

В школе физика явно была жестоким образом прогуляна.
Итак. Прыжок. Объект получил импульс и начал двигаться вверх некой скоростью. На которую его соответственно надо каждый кадр двигать, ежесикундно отнимая g=9.8 м/с. Тогда на некой точке траектории скорость сравняется с нулём и уйдёт в минус, то есть объект изменит направление. Скорость в направлении "вниз" будет увеличиваться на всё то же 9.8 м/с. И так, пока не долетели на опору.


+Надо таки сделать, чтобы худо-бедно запускалось даже на встроенном видео. Иначе - фуфло будет и не более.
Изображение

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 15.05.2007 (Вт) 11:31

Вот немного исправил
У вас нет доступа для просмотра вложений в этом сообщении.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 15.05.2007 (Вт) 11:42

1) Ужос. Камера хромает (в прямом смысле).
2) Зажми и держи пробел.
3) Во время полёта - если жать на стрелки - камера движется. Она что - ракетными двигателями по задумке оборудована?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 15.05.2007 (Вт) 19:37

1) Ну камера дествительно хромает когда поднимаешся по ступеньках, даже и не знаю что можна сделать :(
2)Уже исправил
3) Исправил

MARAVA
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 31.03.2007 (Сб) 18:43

Сообщение MARAVA » 16.05.2007 (Ср) 20:26

Че заценять? Где ссылка на движек или примеры?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.05.2007 (Ср) 21:01

Марава, вы откуда свалились?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Sneaks
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 29.07.2006 (Сб) 12:08

Сообщение Sneaks » 16.05.2007 (Ср) 22:08

Вот побегал по карте, и меня начали терзать смутные сомнения ...
а детекция столкновения ты как делал? Чет все у тебя квадратное и ни одного повернутого ящика...

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 17.05.2007 (Чт) 13:12

Sneaks писал(а):Вот побегал по карте, и меня начали терзать смутные сомнения ...
а детекция столкновения ты как делал? Чет все у тебя квадратное и ни одного повернутого ящика...


Ну если на карте одни паралелепипеды то детекция делается очень просто, я бы сделал повернутые ящики но не знаю как сделать детекцию для повернутых ящиков. :cyclops:

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.05.2007 (Чт) 13:15

Рейтрейс... знаешь такое? Рейтрейси всё грани куба и детекть коллизию.
Последний раз редактировалось Хакер 17.05.2007 (Чт) 13:52, всего редактировалось 1 раз.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 17.05.2007 (Чт) 13:48

Повернутые ящики делаются через OBB...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.05.2007 (Чт) 13:51

MARAVA ( 5 сообщений )
Sneaks ( 4 сообщения )
djalex777( 19 сообщений )

Наводит на странный мысли.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 17.05.2007 (Чт) 14:19

Хакер писал(а):MARAVA ( 5 сообщений )
Sneaks ( 4 сообщения )
djalex777( 19 сообщений )

Наводит на странный мысли.


Намекаешь на неопытность? :) Кол-во сообщений влияет на активность человека в форуме и никаким образом не отражает его опыт ;)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.05.2007 (Чт) 14:21

Намекаю на то, что мне кажется, что это один и тот же человек под разными аккаунтами пишет.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 17.05.2007 (Чт) 14:24

Аааа! Ну тут могу за себя сказать - что я такой единственный. А зарегился здесь давно для того чтоб файл какой-то слить. А теперь время появилось, можно и поотвечать и поспрашивать...

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 17.05.2007 (Чт) 19:10

Хакер писал(а):Рейтрейс... знаешь такое? Рейтрейси всё грани куба и детекть коллизию.


Нет, незнаю расскажи :bounce:

MARAVA писал(а):Че заценять? Где ссылка на движек или примеры?

протри глаза, выше две сссылки висят :arrow:

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.05.2007 (Чт) 19:18

Рейтрейс это проверка перечение луча и плоскости (или треугольника). Активно используется при детекции коллизий, расчёте физики, освещения и теней.

Иногда применяют быстродействующий precompiled байткод, написанный на асме.

Рассматривай кажую плоскость куба и проверяй пересекает ли её некий луч.

Лично я брад две позиции bounding-бокса - до перемещения и после.

У баундинг бокса 8 вершин.

For i = 1 to 8

ЛучПересечения = CreateRay(СтараяПозицияВершиныBBoxа(i), НоваяПозицияВершиныББокса(i))

For j = 1 to Model.TrianglesCount.
if TestRayTrace(ЛучПеречечения, Model.GetTriangle(j)) then
коллизион!
end if
next j
Next i

ну, это я так, образно. Процесс ресурсоёмкий. Естественно глупо рейтрейсить всё подряд со свем подряд. Проверь сначала пересечение BBox-ов, если они не пересекаются то значит уже трейсить бесполезно - коллизии нет. Вобщем тут пригодиться искусство оптимизаторства.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 17.05.2007 (Чт) 19:24

Быстро ответил! :)
Но мне бы пример :batman:

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.05.2007 (Чт) 19:31

Как вариант: пример из DXSDK
Код: Выделить всё
//-----------------------------------------------------------------------------
// Name: IntersectTriangle()
// Desc: Given a ray origin (orig) and direction (dir), and three vertices of
//       of a triangle, this function returns TRUE and the interpolated texture
//       coordinates if the ray intersects the triangle
//-----------------------------------------------------------------------------
BOOL CMyD3DApplication::IntersectTriangle( const D3DXVECTOR3& orig,
                                       const D3DXVECTOR3& dir, D3DXVECTOR3& v0,
                                       D3DXVECTOR3& v1, D3DXVECTOR3& v2,
                                       FLOAT* t, FLOAT* u, FLOAT* v )
{
    // Find vectors for two edges sharing vert0
    D3DXVECTOR3 edge1 = v1 - v0;
    D3DXVECTOR3 edge2 = v2 - v0;

    // Begin calculating determinant - also used to calculate U parameter
    D3DXVECTOR3 pvec;
    D3DXVec3Cross( &pvec, &dir, &edge2 );

    // If determinant is near zero, ray lies in plane of triangle
    FLOAT det = D3DXVec3Dot( &edge1, &pvec );

    D3DXVECTOR3 tvec;
    if( det > 0 )
    {
        tvec = orig - v0;
    }
    else
    {
        tvec = v0 - orig;
        det = -det;
    }

    if( det < 0.0001f )
        return FALSE;

    // Calculate U parameter and test bounds
    *u = D3DXVec3Dot( &tvec, &pvec );
    if( *u < 0.0f || *u > det )
        return FALSE;

    // Prepare to test V parameter
    D3DXVECTOR3 qvec;
    D3DXVec3Cross( &qvec, &tvec, &edge1 );

    // Calculate V parameter and test bounds
    *v = D3DXVec3Dot( &dir, &qvec );
    if( *v < 0.0f || *u + *v > det )
        return FALSE;

    // Calculate t, scale parameters, ray intersects triangle
    *t = D3DXVec3Dot( &edge2, &qvec );
    FLOAT fInvDet = 1.0f / det;
    *t *= fInvDet;
    *u *= fInvDet;
    *v *= fInvDet;

    return TRUE;
}
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 17.05.2007 (Чт) 19:35

Хакер писал(а):Как вариант: пример из DXSDK

Спасибо, а где в DXSDK такое есть, а то я токих примеров не видел?

След.

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

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

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

    TopList