Forum » Programiranje » 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č
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č
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
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š?
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.
Hvala.
[edit - uporabi tag "st.koda" - vsc]
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š...
Samo zakaj se mi zdi, da ti samo ne dobiš ven tistega gar pričakuješ? In ker ne vem kaj pričakuješ...
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č.
Texture3d xColoredTexture; Texture3d sploh ne bostaja !!!!
Hvala za pomoč.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [DirectX] Problem s teksturamiOddelek: Programiranje | 690 (588) | Senitel |
» | tekstura [c++ opengl]Oddelek: Programiranje | 905 (690) | matej94 |
» | [C# HLSL] osnovna uporaba pixel shaderjaOddelek: Programiranje | 1047 (969) | Senitel |
» | GeForce4 čipi bodo zamudiliOddelek: Novice / Grafične kartice | 2291 (2291) | franci |
» | O Truform-uOddelek: Novice / Grafične kartice | 1756 (1756) | Radiant |