GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (93 стр.)

Сообщения на форуме пользователя Andrey (93 стр.)

Работа с матрицами dx916 ноя. 200819: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);
рисуем сцену и объекты

для шейдеров все аналогично
только не нужно вызывать SetTransform, а передавать шейдеру финальную матрицу WorldViewProj, ту что ты указал в посте

indielib16 ноя. 20080:01#1
>Но зачем -то в исходниках лежит sdl.
наверное что-бы не заморачиваться с созданием окон ввод/выводом.
Volume rendering. Работа на GeForce 8x00, 9x00 и на старших Radeon'ax. Нужна помощь.15 ноя. 20083:44#14
_NetSurfer_
ATI X1300 Windows XP.не запустилось. Сообщение движка об ошибке.
nVidia 8600GT Vista не запустилось. Сообщение Windows об ошибке.
Потестите, пожалуйста, маленькую демку с OpenAL (580Кб)15 ноя. 20081:30#4
Спец
тоже работает. Этот раз уже на висте.
звуковуха встроенная стандартная, У меня проинсталлирован OpenAL кстати когда первый раз тестил и сейчас тоже.
Потестите, пожалуйста, маленькую демку с OpenAL (580Кб)14 ноя. 200822:20#2
Спец
есть короткий звук.
Математика для OpenGL (C#)14 ноя. 200818:44#2
_Sell_
порядок хранения разный. нужно транспонирование.
О производительности... (скелетная анимация, OpenGL)14 ноя. 200816:48#23
XProger
>Что примечательно, GF 5200FX которую считал аналогом Radeon 9600 выдавала 10 FPS всего )
нет, аналог Radeon 9600 это FX 5700-5900.
надо свою анимацию потестить.
О производительности... (скелетная анимация, OpenGL)14 ноя. 200816:40#21
XProger
24 FPS на ATI 9600 дрова 8.11. А что если окно 1280x1024 ?
time + MinGW10 ноя. 200823:03#3
Pokimon
это что в Windows такой сигнал SIGSEGV выскакивает? очень интересно. или это gcc вставляет такой код типа что-бы POSIX обработка ошибок была?
Проблема использования OpenGL в vsn200810 ноя. 200817:03#21
тема ещё не во флейме? :)
Косяк с ilSaveL10 ноя. 200812: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 что-то не то сохраняет -
>получается непонятная цветная картинка, растянутая по горизонтали на весь экран
>(в отличие от оригинального изображения).
ну как вариант неправильно работает или неверные параметры.
Che@ter's Demo Beta9 ноя. 200816:15#17
Che@ter
Incorrect Version DirectX, не запускается на Vista.
Стоит ли сейчас поддерживать шейдеры версии 2.0, или можно уже только под 3.0 писать? Ваши мнения7 ноя. 200817:49#36
SNVampyre
я не помню, но под Direct3D это точно будет работать. Сегодня ради интереса запущу на X1300.
Стоит ли сейчас поддерживать шейдеры версии 2.0, или можно уже только под 3.0 писать? Ваши мнения7 ноя. 200817:45#34
SNVampyre
>Запусти это на Radeon 1950 XTX, если заработает, то верну свои слова обратно.
да мне то что можешь не возвращать
что именно запускать? nVidia SDK есть пример VertexTextureFetchWater он точно работает на SM 3.0 железе.
Стоит ли сейчас поддерживать шейдеры версии 2.0, или можно уже только под 3.0 писать? Ваши мнения7 ноя. 200817:27#32
SNVampyre
>Чтение текстур в вершинном шейдере - это фича 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; 
}
вот результаты для Cg -> Direct3D SM 3.0:
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
вот результаты для HLSL -> SM 3.0:
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
ну и результаты Cg->GLSL:
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
Так что это все SM 3.0.

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр