¿Se puede añadir una nueva técnica a"instaceEffect" para que en una pasada me dibuje las primitvas y en otra pasada me aplique el efecto de la niebla?
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Páginas1
#2
XNA / Niebla en XNA 4.0
15 de Junio de 2011, 09:58:24 PM
Holas,
Lolz, si que ha pasado tiempo desde mi último mensaje, la virgen del amor hermoso 0:-)
Bueno, estoy intentando aplicar un effecto de niebla a una chusta de código que tengo entre manos y no consigo nada (la edad, que no perdona y mi velocidad de procesamiento ya no es lo que era jajaja)
Estoy usando XNA 4.0
En la clase principal (Game1.cs) tengo algo como esto:
Ahí se llama a otra clase (x) que tiene un método público (Draw):
Desde la clase "x" en su método "Draw" se llama a otra clase (xx) que tiene otro método público (Render):
Esta última clase es la que en última instancia me "dibuja" los triangulitos en pantalla. Se usa un shader para dibujar las primitivas con su respectiva textura y usando las matrices de proyección... de ahí el foreach ()
El tema está en que la escena se pinta bien, pero de la niebla ni rastro, es como si no hiciese caso del "BassicEffect"
¿Alguna ayuda?
Salu2.
Lolz, si que ha pasado tiempo desde mi último mensaje, la virgen del amor hermoso 0:-)
Bueno, estoy intentando aplicar un effecto de niebla a una chusta de código que tengo entre manos y no consigo nada (la edad, que no perdona y mi velocidad de procesamiento ya no es lo que era jajaja)
Estoy usando XNA 4.0
En la clase principal (Game1.cs) tengo algo como esto:
Código (csharp) [Seleccionar]
BasicEffect basicEffect;
basicEffect.FogEnabled = true;
basicEffect.FogStart = 10.0f;
basicEffect.FogEnd = 100.0f;
basicEffect.FogColor = new Vector3(0.0f, 0.0f, 0.0f);
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
basicEffect.CurrentTechnique.Passes[0].Apply();
x.Draw();
}
Ahí se llama a otra clase (x) que tiene un método público (Draw):
Código (csharp) [Seleccionar]
public void Draw()
{
graphicsDevice.BlendState = BlendState.Opaque;
graphicsDevice.DepthStencilState = DepthStencilState.Default;
xx.Render();
spriteBatch.Begin();
spriteBatch.DrawString(gFont, "blabla", new Vector2(20, 120), Color.Yellow);
spriteBatch.End();
}
Desde la clase "x" en su método "Draw" se llama a otra clase (xx) que tiene otro método público (Render):
Código (csharp) [Seleccionar]
private Effect instancedEffect;
instancedEffect.CurrentTechnique = instancedEffect.Techniques["HardwareInstancing"];
instancedEffect.Parameters["Texture"].SetValue(cubeTexture);
Public void Render()
{
foreach (EffectPass pass in instancedEffect.CurrentTechnique.Passes)
{
pass.Apply();
graphicsDevice.DrawInstancedPrimitives(...)
}
}
Esta última clase es la que en última instancia me "dibuja" los triangulitos en pantalla. Se usa un shader para dibujar las primitivas con su respectiva textura y usando las matrices de proyección... de ahí el foreach ()
El tema está en que la escena se pinta bien, pero de la niebla ni rastro, es como si no hiciese caso del "BassicEffect"
¿Alguna ayuda?
Salu2.
#3
General Programadores / Ayuda para novel.No paseis de mi!!!
01 de Enero de 1970, 01:00:00 AM
Holas foro:
Llevo un par de dias "incordiando" a la gente del canal para a ver si pueden
darme ideas o decirme como se hace un efecto que quiero realizar
(no se quien dijo: "Pregunta ahora y seras ignorante por 5 minutos. No preguntes
y seras ignorante todo tu vida"). Espero que no se enfaden @mICrO,@ASK, @AK47,@tmd y otros xD
Pues bien,lo que quiero hacer es algo como esto:
http://www.galeon.com/mimud/scr01.jpg
(esta simulado con el Paint Shop Pro)
Como vereis no es nada del otro mundo, un escenario 2d donde pueda "iluminar"
los elementos que quiera, en este caso, un enemigo y el protagonista.
Supongo que para hacerlo, hay que tratar el flare de una forma distinta a la habitual
pero no se como :triste:
Para el codigo uso DirectX y VisualBasic (si habeis leido bien, Visual Basic xD
ya que para hacer esto en VC++ Dev->SetRenderState D3DRENDERSTATE_DESTBLEND, D3DBLEND_INVSRCALPHA
hago esto en VB: Dev.SetRenderState D3DRENDERSTATE_DESTBLEND, D3DBLEND_INVSRCALPHA
Por otro lado no tengo el VC++ y de momento solo quiero aprender lo mas "basico"
(No pretendo hacer un nuevo QuaKA, sin ni siquiera saber lo mas simple)
Bueno, espero que no paseis de mi por no ser VCcero!
Llevo un par de dias "incordiando" a la gente del canal para a ver si pueden
darme ideas o decirme como se hace un efecto que quiero realizar
(no se quien dijo: "Pregunta ahora y seras ignorante por 5 minutos. No preguntes
y seras ignorante todo tu vida"). Espero que no se enfaden @mICrO,@ASK, @AK47,@tmd y otros xD
Pues bien,lo que quiero hacer es algo como esto:
http://www.galeon.com/mimud/scr01.jpg
(esta simulado con el Paint Shop Pro)
Como vereis no es nada del otro mundo, un escenario 2d donde pueda "iluminar"
los elementos que quiera, en este caso, un enemigo y el protagonista.
Supongo que para hacerlo, hay que tratar el flare de una forma distinta a la habitual
pero no se como :triste:
Para el codigo uso DirectX y VisualBasic (si habeis leido bien, Visual Basic xD
ya que para hacer esto en VC++ Dev->SetRenderState D3DRENDERSTATE_DESTBLEND, D3DBLEND_INVSRCALPHA
hago esto en VB: Dev.SetRenderState D3DRENDERSTATE_DESTBLEND, D3DBLEND_INVSRCALPHA
Por otro lado no tengo el VC++ y de momento solo quiero aprender lo mas "basico"
(No pretendo hacer un nuevo QuaKA, sin ni siquiera saber lo mas simple)
Bueno, espero que no paseis de mi por no ser VCcero!
Páginas1