» »

C#,HLSL, 3D texture

C#,HLSL, 3D texture

spelic ::

Pozdravljeni

A ima kdo kakšen primer kako v C# ustvariti 3D texturo in jo prenesti v shader kot spremenljivko sampler3d, tako da lahko izvajamo 3d mapiranje po texturi z ukazom tex3d.
Ali pa mogoče kakeršen koli primer v c# in 3d texturami, kako jih generiramo in prikažemo.

Hvala za pomoč

Senitel ::

Kaj pravzaprav hočeš naredit?

spelic ::

v c# bi naložil 256x256x256 3d texturo in jo obdeloval s shaderji.

problem je pa prenos te texture v shaderje. 2d texturo ni problem 3d pa nevem kako.

LP Denis

Senitel ::

Kreiraš "VolumeTexture" in ga nekako nafilaš (to si že), potem nastaviš z SetTexture teksturo na ustezen stage in jo uporabljaš v shaderjih tako kot vsako drugo teksturo (samo da imaš tu tri koordinate)...
Al rezultati niso taki kot jih pričakuješ?

spelic ::

to je primer shaderja za 2d texturo, nevem kako naj spremenim za 3d: zanima me samo sprememba za sampler3d namesto sampler.
struct VertexToPixel
{
    float4 Position     : POSITION;
    float2 TexCoords    : TEXCOORD0;
};

struct PixelToFrame
{
    float4 Color : COLOR0;
};

float4x4 xViewProjection;
Texture xColoredTexture;

sampler ColoredTextureSampler = sampler_state { texture = "/ColoredTexture/ ; magfilter = LINEAR; minfilter = LINEAR; mipfilter=LINEAR; AddressU = mirror; AddressV = mirror;};

 VertexToPixel SimplestVertexShader( float4 inPos : POSITION, float2 inTexCoords : TEXCOORD0)
{
    VertexToPixel Output = (VertexToPixel)0;
    Output.Position = mul(inPos, xViewProjection);
    Output.TexCoords = inTexCoords;
    return Output;    
}

PixelToFrame OurFirstPixelShader(VertexToPixel PSIn)
{
    PixelToFrame Output = (PixelToFrame)0;
     Output.Color = tex2D(ColoredTextureSampler, PSIn.TexCoords);
    return Output;
}

technique Simplest
{
    pass Pass0
    {        
        VertexShader = compile vs_1_1 SimplestVertexShader();
        PixelShader = compile ps_1_1 OurFirstPixelShader();
    }
}

Hvala.

[edit - uporabi tag "st.koda" - vsc]

Zgodovina sprememb…

  • spremenil: Vesoljc ()

Senitel ::

Samo zamenjaš sampler z sampler3D in namesto tex2D uporabiš tex3D (in seveda popraviš koorinate iz float2 v float3)...
Samo zakaj se mi zdi, da ti samo ne dobiš ven tistega gar pričakuješ? In ker ne vem kaj pričakuješ... :D

spelic ::

Že deluje, napaka je bila ko sem kreiral texturo sem kreiral texturo3d namesto samo texture.

Texture3d xColoredTexture; Texture3d sploh ne bostaja !!!!

Hvala za pomoč.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[DirectX] Problem s teksturami

Oddelek: Programiranje
6703 (601) Senitel
»

tekstura [c++ opengl]

Oddelek: Programiranje
9919 (704) matej94
»

[C# HLSL] osnovna uporaba pixel shaderja

Oddelek: Programiranje
51062 (984) Senitel
»

GeForce4 čipi bodo zamudili

Oddelek: Novice / Grafične kartice
132311 (2311) franci
»

O Truform-u

Oddelek: Novice / Grafične kartice
51783 (1783) Radiant

Več podobnih tem