Vykreslování 3D modelu v C# – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vykreslování 3D modelu v C# – .NET – Fórum – Programujte.comVykreslování 3D modelu v C# – .NET – Fórum – Programujte.com

 

Duke
~ Anonymní uživatel
3 příspěvky
29. 7. 2012   #1
-
0
-

Ahoj, nedávno jsem potřeboval do c# nahrát model(.x/.fbx), programově ho natočit a následně převést do 2D textury, což se mi částečně povedlo

jde o to, že když vykresluju normálně přímo na monitor, tak výsledek je toto
http://www.2i.cz/1d2dd0fa29

ale pokud změním render target a uloženou texturu vykreslím později, tak výsledek je toto

http://www.2i.cz/0c3cc1eb38

různě po fórech jsem našel několi postupů, co s tím, ale žádný nezabral.. tak nevím, jestli tam nemrším něco jinýho

kdyby jste se mohli kouknout na zdroják a říct, co vás znepokojuje, byl bych vám vděčný

public void Draw(SpriteBatch sprite)
        {
            //veci z for
           renderTarget.GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap;
           renderTarget.GraphicsDevice.BlendState = BlendState.Opaque;
           renderTarget.GraphicsDevice.DepthStencilState = DepthStencilState.Default;

           graphics.SetRenderTarget(renderTarget);
           

            graphics.Clear(Color.CornflowerBlue);

            // Copy any parent transforms.
            Matrix[] transforms = new Matrix[myModel.Bones.Count];
            myModel.CopyAbsoluteBoneTransformsTo(transforms);
            

            // Draw the model. A model can have multiple meshes, so loop.
            foreach (ModelMesh mesh in myModel.Meshes)
            {
                // This is where the mesh orientation is set, as well 
                // as our camera and projection.
                foreach (BasicEffect effect in mesh.Effects)
                {

                    effect.World = transforms[mesh.ParentBone.Index] *
                        Matrix.CreateRotationY(modelRotation)
                        * Matrix.CreateTranslation(modelPosition);
                    effect.View = Matrix.CreateLookAt(cameraPosition,
                        Vector3.Zero, Vector3.Up);
                    effect.Projection = Matrix.CreatePerspectiveFieldOfView(
                        MathHelper.ToRadians(45.0f), aspectRatio,
                        1.0f, 10000.0f);
                }
                // Draw the mesh, using the effects set above.
               
                mesh.Draw();
             
            }





            graphics.SetRenderTarget(null);
            shadowMap = (Texture2D)renderTarget;

           

            sprite.Begin();
            sprite.Draw(shadowMap,new Rectangle(0,0,CMenu.rozlW,CMenu.rozlH),Color.White);
            sprite.End();

            

        }
Nahlásit jako SPAM
IP: 62.201.20.–
Duke
~ Anonymní uživatel
3 příspěvky
30. 7. 2012   #2
-
0
-

#1 Duke
pomož si a bude ti pomoženo

místo 

RenderTarget2D rnd = new RenderTarget2D(graf.GraphicsDevice, 800, 600);

má být 

RenderTarget2D rnd = new RenderTarget2D(graf.GraphicsDevice, 800, 600, false, SurfaceFormat.Color, DepthFormat.Depth24);
Nahlásit jako SPAM
IP: 62.201.20.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 37 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý