Сообщения на форуме пользователя Andrey (93 стр.)
Работа с матрицами dx9 | 16 ноя. 2008 | 19:40 | #2 |
---|
flaber
>Мне бы понять как ето в dx происходит т.е. матрицу проекции ставим 1 раз?
ну в основном 1 раз. А Вообще как только поменялись параметры zNear, zFar, Fov, Aspect
>как устанавливать матрицу вида матрицу перемещения/вращения объекта применительно к шейдорам и FFP
видовая матрица рассчитывается при изменении камеры(при повороте или изменении положения)
>матрицу перемещения/вращения объекта
она меняется соответственно если объект повернулся переместился.
итак для FFP имеем:
1)если камеры поменялась
считаем ее матрицу (заодно и frustum)
вызываем IDirect3DDevice9::SetTransform(D3DTS_VIEW, &matView);
2) для каждого объекта при его вращении перемещении считаем его worldMatrix
вызываем IDirect3DDevice9::SetTransform(D3DTS_WORLD, &matWorld);
рисуем сцену и объекты
>Мне бы понять как ето в dx происходит т.е. матрицу проекции ставим 1 раз?
ну в основном 1 раз. А Вообще как только поменялись параметры zNear, zFar, Fov, Aspect
>как устанавливать матрицу вида матрицу перемещения/вращения объекта применительно к шейдорам и FFP
видовая матрица рассчитывается при изменении камеры(при повороте или изменении положения)
>матрицу перемещения/вращения объекта
она меняется соответственно если объект повернулся переместился.
итак для FFP имеем:
1)если камеры поменялась
считаем ее матрицу (заодно и frustum)
вызываем IDirect3DDevice9::SetTransform(D3DTS_VIEW, &matView);
2) для каждого объекта при его вращении перемещении считаем его worldMatrix
вызываем IDirect3DDevice9::SetTransform(D3DTS_WORLD, &matWorld);
рисуем сцену и объекты
для шейдеров все аналогично
только не нужно вызывать SetTransform, а передавать шейдеру финальную матрицу WorldViewProj, ту что ты указал в посте
indielib | 16 ноя. 2008 | 0:01 | #1 |
---|
>Но зачем -то в исходниках лежит sdl.
наверное что-бы не заморачиваться с созданием окон ввод/выводом.
наверное что-бы не заморачиваться с созданием окон ввод/выводом.
Volume rendering. Работа на GeForce 8x00, 9x00 и на старших Radeon'ax. Нужна помощь. | 15 ноя. 2008 | 3:44 | #14 |
---|
_NetSurfer_
ATI X1300 Windows XP.не запустилось. Сообщение движка об ошибке.
nVidia 8600GT Vista не запустилось. Сообщение Windows об ошибке.
ATI X1300 Windows XP.не запустилось. Сообщение движка об ошибке.
nVidia 8600GT Vista не запустилось. Сообщение Windows об ошибке.
Потестите, пожалуйста, маленькую демку с OpenAL (580Кб) | 15 ноя. 2008 | 1:30 | #4 |
---|
Спец
тоже работает. Этот раз уже на висте.
звуковуха встроенная стандартная, У меня проинсталлирован OpenAL кстати когда первый раз тестил и сейчас тоже.
тоже работает. Этот раз уже на висте.
звуковуха встроенная стандартная, У меня проинсталлирован OpenAL кстати когда первый раз тестил и сейчас тоже.
Потестите, пожалуйста, маленькую демку с OpenAL (580Кб) | 14 ноя. 2008 | 22:20 | #2 |
---|
Спец
есть короткий звук.
есть короткий звук.
Математика для OpenGL (C#) | 14 ноя. 2008 | 18:44 | #2 |
---|
_Sell_
порядок хранения разный. нужно транспонирование.
порядок хранения разный. нужно транспонирование.
О производительности... (скелетная анимация, OpenGL) | 14 ноя. 2008 | 16:48 | #23 |
---|
XProger
>Что примечательно, GF 5200FX которую считал аналогом Radeon 9600 выдавала 10 FPS всего )
нет, аналог Radeon 9600 это FX 5700-5900.
надо свою анимацию потестить.
>Что примечательно, GF 5200FX которую считал аналогом Radeon 9600 выдавала 10 FPS всего )
нет, аналог Radeon 9600 это FX 5700-5900.
надо свою анимацию потестить.
О производительности... (скелетная анимация, OpenGL) | 14 ноя. 2008 | 16:40 | #21 |
---|
XProger
24 FPS на ATI 9600 дрова 8.11. А что если окно 1280x1024 ?
24 FPS на ATI 9600 дрова 8.11. А что если окно 1280x1024 ?
time + MinGW | 10 ноя. 2008 | 23:03 | #3 |
---|
Pokimon
это что в Windows такой сигнал SIGSEGV выскакивает? очень интересно. или это gcc вставляет такой код типа что-бы POSIX обработка ошибок была?
это что в Windows такой сигнал SIGSEGV выскакивает? очень интересно. или это gcc вставляет такой код типа что-бы POSIX обработка ошибок была?
Проблема использования OpenGL в vsn2008 | 10 ноя. 2008 | 17:03 | #21 |
---|
тема ещё не во флейме? :)
Косяк с ilSaveL | 10 ноя. 2008 | 12:07 | #10 |
---|
mozg_kotorogo_NET
>LDR: LdrpWalkImportDescriptor() failed to probe F:\Textures\Debug\DevIL.dll for its manifest, ntstatus 0xc0150002
ну вот неправильно сконвертилось
>поставил devil-1.6.8 - ничего не упало, всё работает,
>только ilSaveL что-то не то сохраняет -
>получается непонятная цветная картинка, растянутая по горизонтали на весь экран
>(в отличие от оригинального изображения).
ну как вариант неправильно работает или неверные параметры.
>LDR: LdrpWalkImportDescriptor() failed to probe F:\Textures\Debug\DevIL.dll for its manifest, ntstatus 0xc0150002
ну вот неправильно сконвертилось
>поставил devil-1.6.8 - ничего не упало, всё работает,
>только ilSaveL что-то не то сохраняет -
>получается непонятная цветная картинка, растянутая по горизонтали на весь экран
>(в отличие от оригинального изображения).
ну как вариант неправильно работает или неверные параметры.
Che@ter's Demo Beta | 9 ноя. 2008 | 16:15 | #17 |
---|
Che@ter
Incorrect Version DirectX, не запускается на Vista.
Incorrect Version DirectX, не запускается на Vista.
Стоит ли сейчас поддерживать шейдеры версии 2.0, или можно уже только под 3.0 писать? Ваши мнения | 7 ноя. 2008 | 17:49 | #36 |
---|
SNVampyre
я не помню, но под Direct3D это точно будет работать. Сегодня ради интереса запущу на X1300.
я не помню, но под Direct3D это точно будет работать. Сегодня ради интереса запущу на X1300.
Стоит ли сейчас поддерживать шейдеры версии 2.0, или можно уже только под 3.0 писать? Ваши мнения | 7 ноя. 2008 | 17:45 | #34 |
---|
SNVampyre
>Запусти это на Radeon 1950 XTX, если заработает, то верну свои слова обратно.
да мне то что можешь не возвращать
что именно запускать? nVidia SDK есть пример VertexTextureFetchWater он точно работает на SM 3.0 железе.
>Запусти это на Radeon 1950 XTX, если заработает, то верну свои слова обратно.
да мне то что можешь не возвращать
что именно запускать? nVidia SDK есть пример VertexTextureFetchWater он точно работает на SM 3.0 железе.
Стоит ли сейчас поддерживать шейдеры версии 2.0, или можно уже только под 3.0 писать? Ваши мнения | 7 ноя. 2008 | 17:27 | #32 |
---|
SNVampyre
>Чтение текстур в вершинном шейдере - это фича 4-х шейдеров.
это кто тебе такое сказал???
вот компилятор Cg и HLSL может это делать в 3.0 шейдерах:
вот результаты для Cg -> Direct3D SM 3.0:
вот результаты для HLSL -> SM 3.0:
ну и результаты Cg->GLSL:
Так что это все SM 3.0.
>Чтение текстур в вершинном шейдере - это фича 4-х шейдеров.
это кто тебе такое сказал???
вот компилятор Cg и HLSL может это делать в 3.0 шейдерах:
// struct PS { float4 Position : POSITION; float4 texcoordPosition : TEXCOORD1; }; uniform float4x4 modelViewProj; uniform sampler2D tex; PS vsMain(float4 Position : POSITION) { PS Out; Out.Position = mul(Position, modelViewProj); Out.texcoordPosition = Out.Position; Out.Position.x += tex2Dlod(tex, Out.texcoordPosition).a; return Out; }
C:\Program Files\NVIDIA Corporation\Cg\bin>cgc.exe -entry vsMain -profile vs_3_0 1.txt 1.txt 18 lines, 0 errors. vs_3_0 // cgc version 2.1.0012, build date Oct 15 2008 // command line args: -profile vs_3_0 // source file: 1.txt //vendor NVIDIA Corporation //version 2.1.0.12 //profile vs_3_0 //program vsMain //semantic modelViewProj //semantic tex //var float4 Position : $vin.POSITION : ATTR0 : 0 : 1 //var float4x4 modelViewProj : : c[0], 4 : -1 : 1 //var sampler2D tex : : texunit 0 : -1 : 1 //var float4 vsMain.Position : $vout.POSITION : ATTR0 : -1 : 1 //var float4 vsMain.texcoordPosition : $vout.TEXCOORD1 : ATTR1 : -1 : 1 dcl_position o0 dcl_texcoord1 o1 dcl_position v0 dcl_2d s0 mul r0, v0.y, c1 mad r0, v0.x, c0, r0 mad r0, v0.z, c2, r0 mad r1, v0.w, c3, r0 texldl r0.w, r1, s0 add o0.x, r1, r0.w mov o0.yzw, r1 mov o1, r1 |
C:\Program Files\Microsoft DirectX SDK (August 2007)\Utilities\Bin\x86>fxc.exe /EvsMain /Tvs_3_0 1.txt Microsoft (R) D3D10 Shader Compiler 9.19.949.1075 Copyright (C) Microsoft Corporation 2002-2006. All rights reserved. // // Generated by Microsoft (R) HLSL Shader Compiler 9.19.949.1104 // // fxc /EvsMain /Tvs_3_0 1.txt // // // Parameters: // // float4x4 modelViewProj; // sampler2D tex; // // // Registers: // // Name Reg Size // ------------- ----- ---- // modelViewProj c0 4 // tex s0 1 // vs_3_0 dcl_position v0 dcl_2d s0 dcl_position o0 dcl_texcoord1 o1 dp4 r0.x, v0, c0 dp4 r0.y, v0, c1 dp4 r0.z, v0, c2 dp4 r0.w, v0, c3 texldl r1, r0, s0 add o0.x, r0.x, r1.w mov o1, r0 mov o0.yzw, r0 |
C:\Program Files\NVIDIA Corporation\Cg\bin>cgc.exe -entry vsMain -profile glslv 1.txt 1.txt 18 lines, 0 errors. // glslv output by Cg compiler // cgc version 2.1.0012, build date Oct 15 2008 // command line args: -profile glslv // source file: 1.txt //vendor NVIDIA Corporation //version 2.1.0.12 //profile glslv //program vsMain //semantic modelViewProj //semantic tex //var float4x4 modelViewProj : : _ZZ2SmodelViewProj[0], 4 : -1 : 1 //var sampler2D tex : : _ZZ2Stex : -1 : 1 //var float4 Position : $vin.POSITION : POSITION : 0 : 1 //var float4 vsMain.Position : $vout.POSITION : POSITION : -1 : 1 //var float4 vsMain.texcoordPosition : $vout.TEXCOORD1 : TEXCOORD1 : -1 : 1 struct PS { vec4 Position; vec4 texcoordPosition; }; PS _ZZ3Sret_0; vec4 _ZZ3SrZh0003; uniform vec4 _ZZ2SmodelViewProj[4]; uniform sampler2D _ZZ2Stex; // main procedure, the original name was vsMain void main() { PS _ZZ4SOut; _ZZ3SrZh0003 = gl_Vertex.x*_ZZ2SmodelViewProj[0]; _ZZ3SrZh0003 = _ZZ3SrZh0003 + gl_Vertex.y*_ZZ2SmodelViewProj[1]; _ZZ3SrZh0003 = _ZZ3SrZh0003 + gl_Vertex.z*_ZZ2SmodelViewProj[2]; _ZZ3SrZh0003 = _ZZ3SrZh0003 + gl_Vertex.w*_ZZ2SmodelViewProj[3]; _ZZ4SOut.Position = _ZZ3SrZh0003; _ZZ4SOut.Position.x = _ZZ3SrZh0003.x + texture2DLod(_ZZ2Stex, vec2(_ZZ3SrZh0003.x, _ZZ3SrZh0003.y), _ZZ3SrZh0003.w).w; _ZZ3Sret_0.Position = _ZZ4SOut.Position; _ZZ3Sret_0.texcoordPosition = _ZZ3SrZh0003; gl_TexCoord[1] = _ZZ3SrZh0003; gl_Position = _ZZ4SOut.Position; return; } // main end |