ПОВЕРХНОСТЬ

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

Модератор: Mikle

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 15.01.2005 (Сб) 20:27

Mikle писал(а):d3drm
Лазил-лазил я по твоему сайту, сайт красивый (похож на vbStreets) и посетителей много, а вот где скачать демку - так и не нашел :cry: .
качаешь сам движок-последнюю версию, а потом раздел Примеры iRender -> Пример карт Quake III со скриптами :wink:

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

Сообщение Mikle » 17.01.2005 (Пн) 18:24

d3drm
FOV камеры явно не равен 3/4, в полноэкранном режиме это очень заметно, если смотреть вверх. В окне - нормально.
Не смог зайти на "язык", куда-то проваливаюсь.
Можно ли инвертировать мышь?

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 20.01.2005 (Чт) 11:25

Да, баги есть с детекцией столкновений, исправить пока не получается. Данный способ определения столкновений не мой, мой работает без багов, но тормозит раз в 8. Я принял во внимание FOV в новой версии можно ставить ASPECT, который исправляет этот глюк. Мышь инвертировать пока нельзя, но тоже принято к сведенью.
ХЎ

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

Сообщение Mikle » 20.01.2005 (Чт) 18:05

Ok! :wink:
На счет мыши. Было бы удобнее всего иметь MouseSpeedX и MouseSpeedY. Нужна инверсия - ставишь отрицательное число.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 20.01.2005 (Чт) 18:12

Тоже выход, но по-моему выглядеть будет не очень красиво.
ХЎ

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 24.01.2005 (Пн) 21:51

Кто нибудь скажите пожалуйста по какому принципу заполняется индекснуй буфер никак не могу понять :oops:

Mikle
В последней строке рассчитывается высота точки под объектом с помощью формулы линейной интерполяции между четырьмя точками на плоскости.

обьясни на словах что это значит :?:

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 25.01.2005 (Вт) 15:23

если в 2х словах интерполяция - усредненное значение 2х величин. Например два числа 1 и 2, за секунду из 1 надо перейти к 2. Тогда вместо грубого посекундного присваевания можно расчитывать по времени переход от 1 к 2. то есть за 100 мс прибавляем к 1 0.1 т т.п. Тоже самое и там, тока переход не по времени а в пространстве. В зависимости от позиции x,z интерполируем значения Y в точках полигона. Так, Майкл?
ХЎ

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

Сообщение Mikle » 25.01.2005 (Вт) 15:44

Так.
Простыми словами, интерполяция - это равномерный переход между числами. При линейной интерполяции результат линейно зависит от расстояния. На линии все просто. если при X1 Y имеет значение Y1, а при X2 Y имеет значение Y2, то интерполяция имеет вид:
Y=Y1+(X-X1)*(Y2-Y1)/(X2-X1)
На плоскости чуть сложнее. Вообще говоря, линейная интерполяция дает плавные переходы уровней, но не точно соответствует картинке в D3D, это когда-то уже обсуждали:
http://bbs.vbstreets.ru/viewtopic.php?t=4348&highlight=
там я давал наглядный пример.

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 26.01.2005 (Ср) 18:29

За интерполяцию всем спасибо :D

Кто нибудь скажите пожалуйста по какому принципу заполняется индекснуй буфер никак не могу понять :oops:

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 04.02.2005 (Пт) 0:45

ну что никто не знает или просто в молчанку играете :cry:

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 04.02.2005 (Пт) 2:34

Bonesnapper писал(а):Кто нибудь скажите пожалуйста по какому принципу заполняется индекснуй буфер никак не могу понять


Код: Выделить всё
Private Type PolyIndex          ' идексы вертексов полигона
        V0 As Integer                 ' вертекс 0
        V1 As Integer                 ' вертекс 1
        V2 As Integer                 ' вертекс 2
End Type

Dim PolyIndices() As PolyIndex  ' массив индексов полигонов
Dim IndexBuffer As Direct3DIndexBuffer8      ' буфер индексов

ReDim PolyIndices(PolygonsCount)

D3DIndexBuffer8SetData IndexBuffer, 0, Len(PolyIndices(0)) * PolygonsCount, 0, PolyIndices(0)
- Какой треугольник не подвластен законам геометрии?
- У которого все углы тупые!

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 06.02.2005 (Вс) 1:21

2 Yurich спасибо но
чето я опять напутал :oops:
имелось ввиду по какому принципу заполняются эти массивы
у Mikle :
For x = 0& To SizeOfFrame
iBuf(x * 2&) = x
iBuf(x * 2& + 1&) = SizeX + x + 1&
Next x

в СДК :
For y = 1 To m_Size - 1
For x = 1 To m_Size - 1
Indices(i) = (y - 1) * m_Size + (x - 1): i = i + 1
Indices(i) = (y - 0) * m_Size + (x - 1): i = i + 1
Indices(i) = (y - 1) * m_Size + (x - 0): i = i + 1
Indices(i) = (y - 1) * m_Size + (x - 0): i = i + 1
Indices(i) = (y - 0) * m_Size + (x - 1): i = i + 1
Indices(i) = (y - 0) * m_Size + (x - 0): i = i + 1
Next
Next

и (как я понял что это тотже массив) у Yurich :
PolyIndices()
получается помой-му какой-то набор цифр

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

Сообщение Mikle » 06.02.2005 (Вс) 10:47

В SDK заполняется ИБ для TriangleList, а у меня для TriangleStrip, отсюда разница.
Представь, что нужно отобразить рег. сетку 32*32 ячейки, то есть 32*32*2 треугольника.

Если отображать TriangleList ВБ - нужно 32*32*2*3 вертекса.

Если 32 TriangleStrip-а - нужно 32*(32+1)*2 вертекса.

Чувствуешь избыток? ведь у нас (32+1)*(32+1) узловый вертексов. ИБ содержит НОМЕРА (или индексы) вертексов в ВБ. То есть:

Если отображать TriangleList ВБ+ИБ - нужно 32*32*2*3 ИНДЕКСОВ + (32+1)*(32+1) вертексов.

Если отображать TriangleStrip ВБ+ИБ - нужно 32*(32+1)*2 ИНДЕКСОВ + (32+1)*(32+1) вертексов.

Размер индекса - 2 или 4 байта (Index_16 или Index_32) против, например, 36 байт для вертекса при VertexFormat=Position+Diffuse+Normal+tu+tv.

Посчитай объем занимаемой памяти в каждом случае - поймешь, зачем нужны ИБ. Кроме того ИБ позволяет не просчитывать один вертекс несколько раз, при повторном обращении.

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 07.02.2005 (Пн) 23:27

mikle
Подскажи, чем отличается последовательность отрисовки узлов в TriangleList от TriangleStrip?
- Какой треугольник не подвластен законам геометрии?
- У которого все углы тупые!

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

Сообщение Mikle » 08.02.2005 (Вт) 16:18

TriangleList - отрисовка совершенно независимых треугольников, на каждфй треугольник задаются 3 вершины, даже если они совпадают по координатам с предыдущим треугольником.
В TriangleStrip тремя вершинами задается только первый треугольник, для следующего задается только 3-я вершина, а 1-й и 2-й считаются соответственно 2-я и 3-я вершины 1-го треугольника. Причем в случае COOLMODE CCW или CW это правильно понимается, то есть если нечетные треугольники отображаются по часовой стрелке, то четные - против часовой.
То есть на TriangleList нужно n*3 вертексов, а на TriangleStrip - n+2.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 08.02.2005 (Вт) 17:42

вот, подумал может картинка яснее покажет смысл построения:

Изображение
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 08.02.2005 (Вт) 20:12

Сенкс! Для начала попробую оптимизировать код прорисовки WireFrame.
- Какой треугольник не подвластен законам геометрии?
- У которого все углы тупые!

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 08.02.2005 (Вт) 20:32

А D3DPT_TRIANGLEFAN? :roll:

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 08.02.2005 (Вт) 20:44

Vovik писал(а):А D3DPT_TRIANGLEFAN? :roll:

Намек не понял.
- Какой треугольник не подвластен законам геометрии?
- У которого все углы тупые!

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 08.02.2005 (Вт) 20:48

Yurich писал(а):
Vovik писал(а):А D3DPT_TRIANGLEFAN? :roll:

Намек не понял.
Да я пока писал сообщение, до меня тут уже напостили... так что я типа спрашиваю, как оное работает...

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 08.02.2005 (Вт) 23:04

вот

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

Сообщение Mikle » 09.02.2005 (Ср) 10:49

В TriangleFan, также как и в TriangleStrip, нужно n+2 вертексов. Тут первая вершина у всех треугольников совпадает, а третья вершина каждого n-ного треугольника является второй каждого n+1-ого треугольника. Fun - веер. Применяется довольно редко, удобно применять для конусов-пирамид, я с помощью TriangleFan делал небо.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 09.02.2005 (Ср) 16:06

применяется Fan часто - в уровнях bsp разных игр.

но я другое хотел спросить, Mikle что в твоем примере с ландшафтом в рендере оного означает последний параметр Ang? Никак не могу понять....
ХЎ

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

Сообщение Mikle » 09.02.2005 (Ср) 16:26

Ang (Angle) - угол направления камеры, применяется для вычисления координат отображаемого фрейма относительно координат камеры.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 09.02.2005 (Ср) 17:24

я так понял это угол поворота по Y, так?
ХЎ

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

Сообщение Mikle » 09.02.2005 (Ср) 17:35

Да, вокруг оси Y (вертикальной).

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 10.02.2005 (Чт) 0:10

а что такое FrameSize?? И можно ли уменьшить\увеличить радиус видимости полигонов?
ХЎ

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 10.02.2005 (Чт) 12:25

d3drm писал(а): И можно ли уменьшить\увеличить радиус видимости полигонов?

FrameSize- по-моему это и есть радис видимости

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

Сообщение Mikle » 10.02.2005 (Чт) 16:21

Все верно, это и есть дальность прорисовки, точнее размер квадратного "Frame", отображаемого в зависимости от позиции и направления камеры.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 10.02.2005 (Чт) 22:52

Хм... По умолчанию он вроде 1, так? То есть уменьшить качество уже нельзя?
ХЎ

Пред.След.

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

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

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

    TopList  
cron