forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Вопросы про Xors3D (http://forum.boolean.name/showthread.php?t=15605)

HolyDel 11.12.2011 17:42

Ответ: Вопросы про Xors3D
 
DeltaYaw же

ANIK123 15.12.2011 22:13

Ответ: Вопросы про Xors3D
 
Спасибо!)
А как игру на паузу поставить? Остановить симуляцию физики и т п, хотя Я приблезительно представляю себе как это реализовать но все же скажите как Вы это делаете)
И еще (наверн самый даунский Мой вопрос): как пользоваться дельта-таймом?)))

H@NON 15.12.2011 23:04

Ответ: Вопросы про Xors3D
 
делаешь внутренний цикл :
Код:

While pause=true
    ...обновляем только паузу
Wend


ANIK123 30.12.2011 13:57

Ответ: Вопросы про Xors3D
 
Спасибо, а как на счет дельты?)

Spy4433 12.01.2012 21:47

Ответ: Вопросы про Xors3D
 
Всем добрый вечер.

Сел изучать шейдеры в RenderMonkey
Код:

float4x4 matViewProjection : ViewProjection;

struct VS_INPUT
{
  float4 Position : POSITION0;
  float2 Txr1: TEXCOORD0;
};

struct VS_OUTPUT
{
  float4 Position : POSITION0;
  float2 Txr1: TEXCOORD0;
};

VS_OUTPUT Effect_Group_1_myeffect_Pass_0_Vertex_Shader_vs_main( VS_INPUT Input )
{
  VS_OUTPUT Output;

  Output.Position = mul( Input.Position, matViewProjection );
  Output.Txr1=Input.Txr1;
  return( Output );
  }

tex2D(Texture0,inTxr1);

float4 Effect_Group_1_myeffect_Pass_0_Pixel_Shader_ps_main( float4 inDiffuse: COLOR0,
                float2 inTxr1:    TEXCOORD0
              ) : COLOR0
{
 
    return tex2D(Texture0,inTxr1);
}



//--------------------------------------------------------------//
// Technique
//--------------------------------------------------------------//
technique myeffect
{
  pass Pass_0
  {
      VertexShader = compile vs_2_0 Effect_Group_1_myeffect_Pass_0_Vertex_Shader_vs_main();
      PixelShader = compile ps_2_0 Effect_Group_1_myeffect_Pass_0_Pixel_Shader_ps_main();
  }

}

и пытаюсь подключить к хорс+блиц..
sh_fx=xLoadFXFile("myeffect.fx")
после этого все зависает т.е даже не возвращает в sh_fx

что не так подскажите

moka 13.01.2012 00:01

Ответ: Вопросы про Xors3D
 
А Логи ксорса ничего не говорят?
Да и замени ViewProjection, на MATRIX_WORLDVIEWPROJ.

Spy4433 13.01.2012 00:46

Ответ: Вопросы про Xors3D
 
логи , что то ничего не говорят
Код:

        0:00:00:00.004        Physical screen size: 338mm x 270mm. Aspect ratio: 1.25185 (5:4).
0:00:00:00.014        X8R8B8B8 backbuffer format.
0:00:00:00.014        No antialiasing.
0:00:00:00.025        640x480x32 windowed graphics mode
0:00:00:00.025        Setting new aspect ratio: 1.33333
New virtual viewport is 640 x 480
0:00:00:00.045        No game controllers found.
0:00:00:00.143        Squall loaded successfully.
0:00:00:00.144        xPhysics is loaded.
0:00:00:00.145        Default world created ( 0703FD60 )
0:00:00:00.150        New font 'Tahoma' (size: 10) loaded in 4.369 ms.
0:00:00:00.150        New camera (handle: 070750F8) is created in 0.118 ms.
0:00:00:00.151        New sphere (handle: 07076F70) is created in 0.782 ms.
0:00:00:00.154        New texture (handle: 07070D48) is loaded from file 'tex.bmp' in 2.7 ms.

собственно после создания текстуры должна выполнятся xLoadFXFile


может я что то не так делаю, или чего то не понимаю ?

Пс приложение зависает полностью

moka 13.01.2012 01:03

Ответ: Вопросы про Xors3D
 
Код давай, и ехе.

Spy4433 13.01.2012 01:18

Ответ: Вопросы про Xors3D
 
Вложений: 1
все в архиве

и вопрос
ViewProjection

MATRIX_WORLDVIEWPROJ -что это есть ? и почему надобно его а не ViewProjection


по любому мой косяк

dsd 13.01.2012 01:36

Ответ: Вопросы про Xors3D
 
Кстати у меня получались иногда шейдеры вещающие приложение при отсутствии каких-либо ошибок в логах. Лечилось это переписыванием шейдера с нуля.
Цитата:


VS_OUTPUT Effect_Group_1_myeffect_Pass_0_Vertex_Shader_vs_ma in( VS_INPUT Input )
{
VS_OUTPUT Output;

Output.Position = mul( Input.Position, matViewProjection );
Output.Txr1=Input.Txr1;
return( Output );
}

tex2D(Texture0,inTxr1);
//че это значит?
float4 Effect_Group_1_myeffect_Pass_0_Pixel_Shader_ps_mai n( float4 inDiffuse: COLOR0,
float2 inTxr1: TEXCOORD0
) : COLOR0
{

return tex2D(Texture0,inTxr1);
}
Сотри это и тыкай пальцем лучше стандартный шейдер из шагов
Код:

float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; // матрица итоговая
float4x4 matrixWorld : MATRIX_WORLD; // матрица мировая
float3 lightDirection : LIGHT0_DIRECTION; // направление
float4 lightColor : LIGHT0_COLOR; // цвет
float4 entityColor : COLOR_DIFFUSE; // цвет объекта
texture diffuseTexture : TEXTURE_0; // текстура
// описываем sampler
sampler diffuseSampler = sampler_state
{
Texture = <diffuseTexture>; // привязываем текстуру
// устанавливаем адресацию координат
AddressU = WRAP;
AddressV = WRAP;
AddressW = WRAP;
// устанавливаем фильтрацию
MinFilter = ANISOTROPIC;
MagFilter = ANISOTROPIC;
MipFilter = ANISOTROPIC;
// устанавливаем уровень фильтрации
MaxAnisotropy = 4;
};
// входная структура для вершинного шейдера
struct VSInput
{
float4 position : POSITION;
float3 normal : NORMAL;
float2 texCoords : TEXCOORD0;
};
// структура для результата вершинного шейдера
struct VSOutput
{
float4 position : POSITION;
float3 normal : TEXCOORD1;
float2 texCoords : TEXCOORD0;
};
// вершинный шейдер
VSOutput VSMain(VSInput input)
{
// объект для выходных данных
VSOutput output;
// трансформируем позицию вершины
output.position = mul(input.position, matrixWorldViewProj);
// трансформируем и нормализуем нормаль
output.normal = normalize(mul(input.normal, matrixWorld));
// переписываем текстурные координаты
output.texCoords = input.texCoords;
// возвращаем результат
return output;
}
// пиксельный шейдер
float4 PSMain(VSOutput input) : COLOR0
{
// делаем выборку из текстуры
float4 diffuse = tex2D(diffuseSampler, input.texCoords);
// расчитываем освещенность точки
float lit = dot(input.normal, -lightDirection);
// возвращаем результирующий цвет пиксела
return diffuse * entityColor * lit * lightColor;
}
// техника для отрисовки
technique Diffuse
{
pass p0
{
VertexShader = compile vs_2_0 VSMain();
PixelShader = compile ps_2_0 PSMain();
}
}

И не выучишь ты ХЛСЛ не выучив основы си или даже спп. На своем опыте говорю:)

dsd 13.01.2012 01:40

Ответ: Вопросы про Xors3D
 
Цитата:

Сообщение от Spy4433 (Сообщение 216664)
все в архиве

и вопрос
ViewProjection

MATRIX_WORLDVIEWPROJ -что это есть ? и почему надобно его а не ViewProjection


по любому мой косяк

Насколько я понимаю это семантики.
Они нужны для того чтобы хорс понял что нужно записать в эту переменную. Ну что бы ручками из хорса меньше всяких xSetFXFloat передавать.

float4 Effect_Group_1_myeffect_Pass_0_Pixel_Shader_ps_mai n( float4 inDiffuse: COLOR0,
float2 inTxr1: TEXCOORD0
//тут по идее должен вывод вершинного шейдера быть.
) : COLOR0
{

return tex2D(Texture0,inTxr1);
}

Ну и текстура у тебя не объявлена никак.

Если поменять твой чудо шейдер на не косячный из шагов то приложение работает. Компилятор шейдеров наверно просто охренел от твоего эпического творчества.

ANIK123 26.01.2012 14:05

Ответ: Вопросы про Xors3D
 
Привет Всем!)
Расскажите Мне Пожалуйста о дельта-тайме и о его использовании
В гугле не получилось найти что-то внятное и конкретное -_-

Krep_Kospit 15.02.2012 19:14

Ответ: Вопросы про Xors3D
 
сделал машинку. В качестве колёс использую части самой модели.

Код:

For l = 0 To 5
        wheel.wheel = New wheel

                If l=5 Then wheel\entity = xFindChild(tank\model, "wheel5")
                If l=3 Then wheel\entity = xFindChild(tank\model, "wheel3")
                If l=1 Then wheel\entity = xFindChild(tank\model, "wheel1")
                If l=4 Then wheel\entity = xFindChild(tank\model, "wheel4")
                If l=2 Then wheel\entity = xFindChild(tank\model, "wheel2")
                If l=0 Then wheel\entity = xFindChild(tank\model, "wheel0")
               
                        xEntityParent wheel\entity, tank\model;, False

               
                xEntityTexture wheel\entity, wheelT
            wheel\max_Rotation = 15000
                xEntityAddWheel(tank\model, wheel\entity)
                  xEntityWheelSetConnectionPoint(tank\model, l, xEntityX(wheel\entity), xEntityY(wheel\entity), xEntityZ(wheel\entity))
                xEntityWheelSetAxle(tank\model, l,-1.0, 0.0, 0.0)
                xEntityWheelSetRadius(tank\model, l, 1.0)
                xEntityWheelSetMaxSuspensionForce(tank\model, l, wheel\max_Rotation)
                xEntityWheelSetSuspensionLength(tank\model, l, 1.5)
                xEntityWheelSetSuspensionStiffness(tank\model, l, 3.8)
                xEntityWheelSetSuspensionDamping(tank\model, l,2.22)
                xEntityWheelSetSuspensionCompression(tank\model,l, 0.3)
                xEntityWheelSetFriction(tank\model, l, 300)
                xEntityWheelSetRollInfluence(tank\model, l, 0.18);
                ;xEntityAddsphereShape(wheel\entity,0, 0.1)       


        Next

Происходит смещение колёс по координатам, т.е. немного вниз и вправо. С чем это может быть связано?

dsd 15.02.2012 20:26

Ответ: Вопросы про Xors3D
 
xEntityWheelSetRay(body,0,xr,yr,zr);
Ты направление по которому колесо смещается не выставил.

Krep_Kospit 15.02.2012 21:22

Ответ: Вопросы про Xors3D
 
Цитата:

Сообщение от dsd (Сообщение 219640)
xEntityWheelSetRay(body,0,xr,yr,zr);
Ты направление по которому колесо смещается не выставил.

ставил все нули - колёса улетали вообще... другие значения не улучшили ситуации... наверно, я не понимаю, как правильно прописывать тут?


Часовой пояс GMT +4, время: 00:50.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot