VB.NET 2008

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

Модератор: Mikle

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

VB.NET 2008

Сообщение FireFenix » 29.12.2008 (Пн) 13:59

Код: Выделить всё
        Dim Verts(3) As Microsoft.DirectX.Direct3D.CustomVertex.PositionNormalColored

        Verts(0).Position = New Microsoft.DirectX.Vector3(0.0F, 1.0F, 1.0F)
        Verts(0).Normal = New Microsoft.DirectX.Vector3(0.0F, 0.0F, -1.0F)
        Verts(0).Color = Color.White.ToArgb

        Verts(1).Position = New Microsoft.DirectX.Vector3(-1.0F, -1.0F, 1.0F)
        Verts(1).Normal = New Microsoft.DirectX.Vector3(0.0F, 0.0F, -1.0F)
        Verts(1).Color = Color.White.ToArgb

        Verts(2).Position = New Microsoft.DirectX.Vector3(1.0F, -1.0F, 1.0F)
        Verts(2).Normal = New Microsoft.DirectX.Vector3(0.0F, 0.0F, -1.0F)
        Verts(2).Color = Color.White.ToArgb

        Device.RenderState.CullMode = Microsoft.DirectX.Direct3D.Cull.None

        Device.RenderState.Lighting = True
        Device.Lights(0).Type = Microsoft.DirectX.Direct3D.LightType.Point
        Device.Lights(0).Position = New Microsoft.DirectX.Vector3()
        Device.Lights(0).Diffuse = System.Drawing.Color.White
        Device.Lights(0).Attenuation0 = 1.0F
        Device.Lights(0).Range = 1000.0F
        Device.Lights(0).Update()
        Device.Lights(0).Enabled = True
        Device.RenderState.Ambient = Color.White

        Vertex_Buffer = New Microsoft.DirectX.Direct3D.VertexBuffer(GetType(Microsoft.DirectX.Direct3D.CustomVertex.PositionColored), 3, Device, Microsoft.DirectX.Direct3D.Usage.Dynamic Or Microsoft.DirectX.Direct3D.Usage.WriteOnly, Microsoft.DirectX.Direct3D.CustomVertex.PositionNormalColored.Format, Microsoft.DirectX.Direct3D.Pool.Default)
        Vertex_Buffer.SetData(Verts, 0, Microsoft.DirectX.Direct3D.LockFlags.None)


        Device.BeginScene()

        Device.VertexFormat = Microsoft.DirectX.Direct3D.CustomVertex.PositionNormalColored.Format
        Device.SetStreamSource(0, Vertex_Buffer, 0)
        Device.DrawPrimitives(Microsoft.DirectX.Direct3D.PrimitiveType.TriangleList, 0, 1)

        Device.EndScene()


При компиляции вылетает на Vertex_Buffer = New ... с ошибкой:
AccessViolationException was unhandled (Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.)

брррр, подскажите - в чём причина?
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

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

Re: VB.NET 2008

Сообщение Mikle » 29.12.2008 (Пн) 19:23

Гдето у тебя CustomVertex.PositionColored, гдето CustomVertex.PositionNormalColored...

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VB.NET 2008

Сообщение FireFenix » 29.12.2008 (Пн) 21:01

Да 1 место пропустил, ибо пробывал по разному методом тыка..... Но сёравно ничего не выходит, студия отрисовывает первые 1,2 кадра потом в дебаг с ошибкой или ваще виснет =(
стоит Microsoft DirectX SDK (November 2008) и Microsoft Visual Studio 2008 version 9.0.21022.8 RTM

Хотя факт, что у меня есть пример тока с другой реализацией - работает без ошибок =(
Ещё прикол - если убрать освещение и тип изменить на PositionColored то работает 2-3 секунды, потом нагло виснет без ошибок.... :cry:
У вас нет доступа для просмотра вложений в этом сообщении.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VB.NET 2008

Сообщение FireFenix » 29.12.2008 (Пн) 23:05

Вопрос снят... Изначально всё было по событию On_paint....
хотя странно разве оно не должно было каждый раз перезаписывать буфер? поидее так должно было работать =)
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる


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

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

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

    TopList