Примеры для новичков...

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

Модератор: Mikle

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

Примеры для новичков...

Сообщение DirectXManiac » 15.07.2006 (Сб) 0:15

Уже давно нашёл серию примеров по DirectX 8.1 только на C++ но решил скачать всё, однако интересовали меня последние из них... Вот список:
1.Инициализация
2.Примитивы
3.Текстурирование
4.Свет и камера
5. Embross Bump Mapping
6.Загрузчик 3ДС
7.Несколько точечных источников света
8.Sphere Mapping
9.Dot3 Bump Mapping
10.Environment Bump Mapping
11.Cube Mapping
12.Dynamic Cube Mapping
13.Bumped Cuuc Surface
14.Per-pixel Lightong
15.Many per-pixel Lights
16.Motion Blur
17.Offset Mapping
18.Stencil Shadows
19.Many Per-Pixel Lights + Stencil Shadows + Parallax Bump Mapping
Но только сейчас решил разобраться с ними т.к. раньше не получилось... Решил начать сначала т.к. примеры построены по одному алгоритму а понять его надо начиная с простого вот и перевожу и разбираю примеры...
Уже перевёл и разобрал первый... Однако просто сделал свою инициализацию...
У вас нет доступа для просмотра вложений в этом сообщении.
#define ROFL 0xDDDD

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

Сообщение Mikle » 15.07.2006 (Сб) 10:02

А Volume Texture примера нет?

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

Сообщение Bonesnapper » 15.07.2006 (Сб) 10:27

http://www.robydx.135.it/

вот тут куча уроков
многие очень интересны
тока на испанском чтоли :)
но все с примерами

зы там есть TEXTURE VOLUMETRICHE
это тоже самое наверно
и главное все на вб

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

Сообщение DirectXManiac » 15.07.2006 (Сб) 14:27

Примеры на этом сайте довольно слабые, однако я разобрал порочку... Тени там ужасные... как сказал d3drm действительно нельзя добиться динамики, но с этими тенями другое дело, они с Per-Pixel Lighting... и динамика обеспечена на 100% :)
Mikle
Может тебе выслать какой-то из примеров?
#define ROFL 0xDDDD

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

Сообщение Mikle » 15.07.2006 (Сб) 16:01

DirectXManiac
Если есть что-то с Volume - вышли, или ссылку дай.

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

Сообщение DirectXManiac » 15.07.2006 (Сб) 16:14

Mikle
Всмысле Volume не объяснишь что это и зачем а я уже посмотрю... просто там столько кода что не понятно сразу...
#define ROFL 0xDDDD

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

Сообщение DirectXManiac » 15.07.2006 (Сб) 18:47

Вот.... Второй пример для новичков... Примитивы... Пример показывает как рисовать все 6 видов примитивов:
PointList
LineList
LineStrip
TriangleList
TriangleStrip
TriangleFan
У вас нет доступа для просмотра вложений в этом сообщении.
#define ROFL 0xDDDD

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

Сообщение DirectXManiac » 15.07.2006 (Сб) 22:16

Вот перевёл ещё пару примеров...
Вот.... Первый это текстурирование, а второй это текст, свет, камера, меши.... Принципы генерации мешей... А также отображение FPS
У вас нет доступа для просмотра вложений в этом сообщении.
#define ROFL 0xDDDD

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

Сообщение DirectXManiac » 15.07.2006 (Сб) 22:19

А вот и ещё один
У вас нет доступа для просмотра вложений в этом сообщении.
#define ROFL 0xDDDD

Bazilius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 14.11.2003 (Пт) 16:07
Откуда: Пермь

Сообщение Bazilius » 17.07.2006 (Пн) 17:50

2DirectXManiac: Очень полезная ветка, огромное спасибо, после "вступительных" буду разбираться... Продолжайте в том же духе:)
In the grim darkness of the far future, there is only war!

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

Сообщение DirectXManiac » 18.07.2006 (Вт) 10:19

Bazilius
Спасибо! Но я довольно плохо владею шейдерами а все примеры начиная с 7ого на вершинном шейдере и у меня пока не получаеться! А вообще лучше подожди новой версии моего двига rRenderer - она на подходе уже и множество этих эффектов(по крайней мере Dynamic Cube Mapping) в нём будет! :)
#define ROFL 0xDDDD

AlexWIN32
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.06.2006 (Пт) 15:10

Сообщение AlexWIN32 » 24.07.2006 (Пн) 17:45

DirectXManiac
Где ты их берешь???

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

Сообщение DirectXManiac » 28.07.2006 (Пт) 17:04

AlexWIN32
Делаю руками! :wink:
#define ROFL 0xDDDD

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

Сообщение DirectXManiac » 02.08.2006 (Ср) 12:56

Может кто поможет с тенями? Не могу рахобраться никак. На процедуре AddEDGE вылазит ошибка Subscript Out Of Range... Не знаю почему...
#define ROFL 0xDDDD

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 03.08.2006 (Чт) 3:32

DirectXManiac процедуру целиком покажи
Бороться и искать, найти и перепрятать!

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

Сообщение DirectXManiac » 03.08.2006 (Чт) 11:38

Вот так строиться тень...
Код: Выделить всё

Public Type rR_Shadow
Vert() As D3DVECTOR
End Type

Public Function CreateShadow(Light As D3DVECTOR, Mesh As D3DXMesh) As rR_Shadow
Dim Vertices() As D3DVERTEX
ReDim Vertices(Mesh.GetNumVertices)

Dim Indexes() As Integer
ReDim Indexes(Mesh.GetNumFaces * 3)
'//Vertices
D3DXMeshVertexBuffer8GetData Mesh, 0, Len(Vertices(0)) * (Mesh.GetNumVertices), 0, Vertices(0)
'//Indexes
D3DXMeshIndexBuffer8GetData Mesh, 0, Len(Indexes(0)) * (Mesh.GetNumFaces * 3), 0, Indexes(0)

Dim pEdges() As Long
ReDim pEdges(Mesh.GetNumFaces * 6)
Dim numEdge As Long
numEdge = 0

Dim n1 As Long, n2 As Long, n0 As Long
Dim v0 As D3DVECTOR, v1 As D3DVECTOR, v2 As D3DVECTOR
Dim vec As D3DVECTOR, vec1 As D3DVECTOR, vec2 As D3DVECTOR
Dim i As Long
For i = 0 To Mesh.GetNumFaces - 1
  n0 = Indexes(3 * i + 0)
  n1 = Indexes(3 * i + 1)
  n2 = Indexes(3 * i + 2)
 
  v0.x = Vertices(n0).x
  v0.Y = Vertices(n0).Y
  v0.z = Vertices(n0).z
 
  v1.x = Vertices(n1).x
  v1.Y = Vertices(n1).Y
  v1.z = Vertices(n1).z
 
  v2.x = Vertices(n2).x
  v2.Y = Vertices(n2).Y
  v2.z = Vertices(n2).z
 
  D3DXVec3Subtract vec1, v2, v1
  D3DXVec3Subtract vec2, v1, v0
  D3DXVec3Cross vec, vec1, vec2
  If D3DXVec3Dot(vec, Light) >= 0 Then
   Call AddEdge(pEdges, numEdge, n0, n1)
   Call AddEdge(pEdges, numEdge, n1, n2)
   Call AddEdge(pEdges, numEdge, n2, n0)
  End If
 
Next i
Dim L As Long
  ReDim CreateShadow.Vert(numEdge * 6)
 
  For i = 0 To numEdge - 1
   Dim ve1 As D3DVECTOR, ve2 As D3DVECTOR, ve3 As D3DVECTOR, ve4 As D3DVECTOR
   ve1.x = Vertices(pEdges(2 * i + 0)).x
   ve1.Y = Vertices(pEdges(2 * i + 0)).Y
   ve1.z = Vertices(pEdges(2 * i + 0)).z
   
   ve2.x = Vertices(pEdges(2 * i + 1)).x
   ve2.Y = Vertices(pEdges(2 * i + 1)).Y
   ve2.z = Vertices(pEdges(2 * i + 1)).z
   
   D3DXVec3Subtract ve3, ve1, Light
   D3DXVec3Subtract ve4, ve2, Light
   
   With CreateShadow
     .Vert(L) = ve1
     L = L + 1
     .Vert(L) = ve2
     L = L + 1
     .Vert(L) = ve3
     L = L + 1
     .Vert(L) = ve2
     L = L + 1
     .Vert(L) = ve4
     L = L + 1
     .Vert(L) = ve3
     L = L + 1
   End With
  Next i
End Function

Sub AddEdge(ByRef pEdges() As Long, ByRef numEdges As Long, v0 As Long, v1 As Long)

Dim i As Long
    For i = 0 To numEdges - 1
        If (pEdges(2 * i + 0) = v0 Or pEdges(2 * i + 1) = v1) And (pEdges(2 * i + 0) = v1 Or pEdges(2 * i + 1) = v0) Then
            If numEdges > 0 Then
                pEdges(2 * i + 0) = pEdges(2 * (numEdges - 1) + 0)
                pEdges(2 * i + 1) = pEdges(2 * (numEdges - 1) + 1)
            End If
            numEdges = numEdges - 1
            Exit Sub
        End If
    Next
   
    pEdges(2 * numEdges + 0) = v0
    pEdges(2 * numEdges + 1) = v1
    numEdges = numEdges + 1
End Sub

А вот рендер тени:
Код: Выделить всё


Private Sub DrawShadow()
D3DDevice.SetRenderState D3DRS_STENCILENABLE, True
    'device.SetRenderState D3DRS_FOGENABLE, False
    D3DDevice.SetRenderState D3DRS_ALPHABLENDENABLE, True
    D3DDevice.SetRenderState D3DRS_SRCBLEND, D3DBLEND_SRCALPHA
    D3DDevice.SetRenderState D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA

    D3DDevice.SetTextureStageState 0, D3DTSS_COLORARG1, D3DTA_TEXTURE
    D3DDevice.SetTextureStageState 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE
    D3DDevice.SetTextureStageState 0, D3DTSS_COLOROP, D3DTOP_MODULATE
    D3DDevice.SetTextureStageState 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE
    D3DDevice.SetTextureStageState 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE
    D3DDevice.SetTextureStageState 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE

    'renderizza solo dove il valore è >1 (zona d'ombra)
    D3DDevice.SetRenderState D3DRS_STENCILREF, &H1
    D3DDevice.SetRenderState D3DRS_STENCILFUNC, D3DCMP_LESSEQUAL
    D3DDevice.SetRenderState D3DRS_STENCILPASS, D3DSTENCILOP_KEEP


    'rendering unico: viene coperta tutta la zona di nera per coprire l'ombra
   
     D3DDevice.SetVertexShader rR_VertexShader_TL
     D3DDevice.SetTexture 0, Nothing
     D3DDevice.SetTexture 1, Nothing
    'D3DDevice.SetMaterial SHMAT
     D3DDevice.DrawPrimitiveUP D3DPT_TRIANGLESTRIP, 2, SQUARE(0), Len(SQUARE(0))
       

    '// riporta il device al suo stato normale
    'device.SetRenderState D3DRS_ZENABLE, True
    D3DDevice.SetRenderState D3DRS_STENCILENABLE, False
    'device.SetRenderState D3DRS_FOGENABLE, True
    D3DDevice.SetRenderState D3DRS_ALPHABLENDENABLE, False
End Sub

Private Sub RenderShadow()
   D3DDevice.SetRenderState D3DRS_ZWRITEENABLE, False
    D3DDevice.SetRenderState D3DRS_STENCILENABLE, True

    'per risparmiare un pò non usiamo il gouraud mode
    D3DDevice.SetRenderState D3DRS_SHADEMODE, D3DSHADE_FLAT

    'settaggi per lo stencil
    D3DDevice.SetRenderState D3DRS_STENCILFUNC, D3DCMP_ALWAYS
    D3DDevice.SetRenderState D3DRS_STENCILZFAIL, D3DSTENCILOP_KEEP
    D3DDevice.SetRenderState D3DRS_STENCILFAIL, D3DSTENCILOP_KEEP

    '// se il test passa allora incrementa
    D3DDevice.SetRenderState D3DRS_STENCILREF, &H1
    D3DDevice.SetRenderState D3DRS_STENCILMASK, &HFFFFFFFF
    D3DDevice.SetRenderState D3DRS_STENCILWRITEMASK, &HFFFFFFFF
    D3DDevice.SetRenderState D3DRS_STENCILPASS, D3DSTENCILOP_INCR

    'con questo settaggio non viene disegnato niente
    'ma viene sporcato lo stencil buffer
    D3DDevice.SetRenderState D3DRS_ALPHABLENDENABLE, True
    D3DDevice.SetRenderState D3DRS_SRCBLEND, D3DBLEND_ZERO
    D3DDevice.SetRenderState D3DRS_DESTBLEND, D3DBLEND_ONE
   
       D3DDevice.SetVertexShader D3DFVF_XYZ
        D3DDevice.SetTexture 0, Nothing
'       D3DDevice.SetTexture 1, Nothing
        D3DDevice.DrawPrimitiveUP D3DPT_TRIANGLELIST, UBound(Sh.Vert) / 3, Sh.Vert(0), Len(Sh.Vert(0))
       
D3DDevice.SetRenderState D3DRS_CULLMODE, D3DCULL_CW

    'decrementa lo stencil buffer
    D3DDevice.SetRenderState D3DRS_STENCILPASS, D3DSTENCILOP_DECR

        'RENDERING OPPOSTO
        'qui vanno renderizzate tutte le ombra degli oggetti
        'renderizza
        D3DDevice.SetVertexShader D3DFVF_XYZ
        D3DDevice.SetTexture 0, Nothing
'        D3DDevice.SetTexture 1, Nothing
        D3DDevice.DrawPrimitiveUP D3DPT_TRIANGLELIST, UBound(Sh.Vert) / 3, Sh.Vert(0), Len(Sh.Vert(0))


    'riporta lo stato alla normalità
    D3DDevice.SetRenderState D3DRS_SHADEMODE, D3DSHADE_GOURAUD
    D3DDevice.SetRenderState D3DRS_CULLMODE, D3DCULL_CCW
    D3DDevice.SetRenderState D3DRS_ZWRITEENABLE, True
    D3DDevice.SetRenderState D3DRS_STENCILENABLE, False
    D3DDevice.SetRenderState D3DRS_ALPHABLENDENABLE, False
End Sub
Sub InitSquare()
SQUARE(0).SX = -99999: SQUARE(0).sy = -99999
        SQUARE(1).SX = 99999: SQUARE(1).sy = -99999
        SQUARE(2).SX = -99999: SQUARE(2).sy = 99999
        SQUARE(3).SX = 99999: SQUARE(3).sy = 99999
        SQUARE(0).color = &H7F000000 'colore nero con alfa trasparente
        SQUARE(1).color = &H7F000000
        SQUARE(2).color = &H7F000000
        SQUARE(3).color = &H7F000000
       
        SQUARE(0).rhw = 1
        SQUARE(1).rhw = 1
        SQUARE(2).rhw = 1
        SQUARE(3).rhw = 1
End Sub

InitSquare это как я понимаю квадрат в котором она может рисоваться... Добился того, что ошибка больше не вылетает, но тень просто не рисуеться... А сцена становиться темнее! :(
#define ROFL 0xDDDD

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

Сообщение DirectXManiac » 03.08.2006 (Чт) 11:39

Ну естественно ещё чищу стенсил.... :)
#define ROFL 0xDDDD

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

Сообщение Хакер » 22.08.2006 (Вт) 14:35

Перенёс тему сюда (VB & 3D)
Ибо:
1) Как ни крути - это не кирпич. Это примеры.
2) Даже если бы это был кирпич - он не доделан. Выложены только 4 примера из 19.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 22.08.2006 (Вт) 19:55

DirectXManiac, ты забыл D3DDevice.SetTransform D3DTS_WORLD, matriceO забыл вставить :)

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

Сообщение DirectXManiac » 23.08.2006 (Ср) 14:33

|( () ( T |/| |(
:) Точно! Щас попробую!
#define ROFL 0xDDDD

Ktulhu
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 14.07.2007 (Сб) 14:03
Откуда: Киев, Р'льех

Сообщение Ktulhu » 15.07.2007 (Вс) 17:17

Трабла с примером stencil shadows, о котором шла речь выше:

Как его рационально модифицировать, чтобы тень перепроэцировалась после поворота обьекта???

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

Сообщение StimorolD3DX » 16.07.2007 (Пн) 17:00

Ktulhu писал(а):Трабла с примером stencil shadows, о котором шла речь выше:

Как его рационально модифицировать, чтобы тень перепроэцировалась после поворота обьекта???


Я не пробовал но, наверное нужно вызывать функцию CreateShadow при каждом перемещении обьектов.

Ktulhu
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 14.07.2007 (Сб) 14:03
Откуда: Киев, Р'льех

Сообщение Ktulhu » 16.07.2007 (Пн) 17:36

StimorolD3DX писал(а):Я не пробовал но, наверное нужно вызывать функцию CreateShadow при каждом перемещении обьектов.


Дело в том, что эта функция строит тень из буфера вершин мэша, но она не учитывает матрицу мира этого мэша. Да и выхывать эту в-цию каждый кадр сильно скажется на фпс :(

Ktulhu
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 14.07.2007 (Сб) 14:03
Откуда: Киев, Р'льех

Сообщение Ktulhu » 16.07.2007 (Пн) 17:52

Собсна можно этой ф-цией перестроить правильно тень, трансформировав сам вектор света, но остается открытым вопрос скорости. Должен быть способ рациональнее. Может кто знает?

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

Сообщение Vovik » 17.07.2007 (Вт) 0:35

Ktulhu писал(а):
StimorolD3DX писал(а):Я не пробовал но, наверное нужно вызывать функцию CreateShadow при каждом перемещении обьектов.


Дело в том, что эта функция строит тень из буфера вершин мэша, но она не учитывает матрицу мира этого мэша. Да и выхывать эту в-цию каждый кадр сильно скажется на фпс :(
А что, проблемы применить матрицу мира к тени??? :roll: А вызывать ф-цию придется, т.к. ты же хочешь динамические тени, либо просто оптимизировать ф-цию.. :roll: Только вот как :?

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

Сообщение DirectXManiac » 17.07.2007 (Вт) 0:42

Эти тени не рациональны... Сколько пытался нормально не получается. В любом случае надо юзать теневые карты. Примеров не находил, но сейчас хочу вспомнить как использовать DX(уже давно не разбирался ни с чем, все делаю по памяти) и сесть за них...
#define ROFL 0xDDDD

Ktulhu
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 14.07.2007 (Сб) 14:03
Откуда: Киев, Р'льех

Сообщение Ktulhu » 17.07.2007 (Вт) 1:09

Vovik писал(а): А что, проблемы применить матрицу мира к тени??? :roll: А вызывать ф-цию придется, т.к. ты же хочешь динамические тени, либо просто оптимизировать ф-цию.. :roll: Только вот как :?

Если применить матрицу мира к тени, то тень просто повернется, но не перепроэцируется.
Помойму функцию необязательно каждый раз вызывать... Мне кажеццо, что достаточно будет перестраивать массив вершин тени (Sh.Vert)... хм... надо будет завтра попробовать

Ktulhu
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 14.07.2007 (Сб) 14:03
Откуда: Киев, Р'льех

Сообщение Ktulhu » 17.07.2007 (Вт) 1:17

DirectXManiac писал(а):Эти тени не рациональны... Сколько пытался нормально не получается. В любом случае надо юзать теневые карты. Примеров не находил, но сейчас хочу вспомнить как использовать DX(уже давно не разбирался ни с чем, все делаю по памяти) и сесть за них...


Я думаю, что не рациональный просто этот пример. А эта технология во многих играх использовалась и давала неплохой фпс

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

Сообщение Mikle » 17.07.2007 (Вт) 12:17

У меня есть мысль по поводу данной ветки.
Что если полностью очистить ее от постов и давать только ссылки на примеры с краткими коментариями, а сами примеры выкладывать, как обычные темы? А в первом посте кратко описать правила, примерно как в "кирпичах"?
Можно вообще, чтобы авторы тем не давали сразу сюда ссылки на свои "бессмертные творения", а делал это кто-то из модераторов после некоторого обсуждения темы.
Со своей стороны предлагаю:

1. VB6, DX8, реализация воды, отражения, преломления, волны:
http://bbs.vbstreets.ru/viewtopic.php?t ... highlight=

2. VB6, DX8, несколько вариантов реализации ландшафта, на шейдерах и без:
http://bbs.vbstreets.ru/viewtopic.php?t ... highlight=

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

Сообщение DirectXManiac » 17.07.2007 (Вт) 13:09

Ktulhu
Речь идет именно про этот пример и про это алгоритм. :roll:
Mikle
Все правильно, но я думаю примеров больше не будет из тех что я написал.
#define ROFL 0xDDDD

След.

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

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

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

    TopList