Рендеринг в несколько окон

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

Модератор: Mikle

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

Рендеринг в несколько окон

Сообщение d3drm » 23.11.2003 (Вс) 13:12

Мне нужно, чтобы программа прорисовывала изображение сразу в несколько окон. То есть рисуем в одно, потом задаем другой поток вертексов и рисуем в другой и т.д.

Public Sub D3DUtil_Reset()
Device.Reset d3dWindow
D3DUtil_SetViewFrustum 1000, 90
Device.SetRenderState D3DRS_LIGHTING, 1
Device.SetRenderState D3DRS_CULLMODE, D3DCULL_NONE
Device.SetTextureStageState 0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR
Device.SetTextureStageState 0, D3DTSS_MINFILTER, D3DTEXF_LINEAR
Device.SetTextureStageState 0, D3DTSS_MIPFILTER, D3DTEXF_POINT
End Sub


Public Sub D3DUtil_ResetWindowed(hWnd As Long)
d3dWindow.Windowed = 1
d3dWindow.BackBufferWidth = 0
d3dWindow.BackBufferHeight = 0
d3dWindow.BackBufferFormat = d3dDispMode.Format
d3dWindow.hDeviceWindow = hWnd
D3DUtil_Reset
End Sub


Эти две процедуры вместе работают неплохо, но только не в цикле. То есть при form_paint еще нормально, а в цикле на

Device.Reset d3dWindow

Выпадает ошибка. Ничего не помогает, даже танцы с бубном...

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

Сообщение Yurich » 23.11.2003 (Вс) 14:19

Ошибка наверное лезет по причине

Set Device = Direct3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DUtil_GetTnL(), d3dWindow)

Device привязан к конкретному d3dWindow. По идее перед переключением надо Device уничтожить и создать снова для последующего окна.(Или создать три девайса одновременно?)

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

Сообщение d3drm » 26.11.2003 (Ср) 13:48

А три девайса глючить не будут?

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

Сообщение Yurich » 27.11.2003 (Чт) 1:32

d3drm писал(а):А три девайса глючить не будут?

Возможно. НО! Тот - же Макс работает с четырмя окнамим без существенных проблем. Сто'ит попробовать.

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

Сообщение d3drm » 27.11.2003 (Чт) 11:59

Если я не ошибаюсь Макс, как и большинство 3D редакторов, работают под OpenGl.

Cremator
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 03.02.2003 (Пн) 12:14

Сообщение Cremator » 27.11.2003 (Чт) 18:32

Нужно сразу создать необходимое количество D3DDevice, каждый из которых будет рисовать в своё окно. Глюков никаких не будет, а вот FPS будет удручающим 8)

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

Сообщение d3drm » 28.11.2003 (Пт) 11:08

Кстати, при развертке формы на весь экран программа со свистом грохаеца.


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

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

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

    TopList