danke für den tipp
doch leider hatte dieser auch nicht den von mir gewünschten effekt
es wird zwar jetzt zum teil transparent angezeigt aber es sieht halt nicht so aus wie es soll (transparentz kann nicht gesteuert werden)
gibt es noch eine andere möglichkeit ein bild mit transparenz auf einer 3d pos. darzustellen ?
achso ... und linien die ich mit Draw3DLine zeichne werden ebenfalls mit keiner transparenz dargestellt aber bei draw2dline funktionierts halt ...
mfg bash
Code:
using System;
using System.Text;
using System.IO;
using Irrlicht;
using Irrlicht.Video;
using Irrlicht.GUI;
using Irrlicht.Core;
using Irrlicht.Scene;
namespace Test_01
{
class Program1
{
class IrrVertices
{
public Vertex3D[] verts = { new Vertex3D(), new Vertex3D(), new Vertex3D(), new Vertex3D() };
};
[STAThread]
static void Main(string[] args)
{
IrrlichtDevice device = new IrrlichtDevice(DriverType.DIRECT3D9);
ICameraSceneNode cam =
device.SceneManager.AddCameraSceneNode(null, new Vector3D(0, 0, 0), new Vector3D(0, 0, 0), -1);
cam.Position = new Vector3D(0, 0, -2);
ITexture Logo = device.VideoDriver.GetTexture(@"../../media/irrlichtlogoalpha2.tga");
device.CursorControl.Visible = false;
IVideoDriver driver = device.VideoDriver;
//ISceneManager smgr;
Material mat = new Material();
driver = device.VideoDriver;
ushort[] indices = { 0, 2, 3, 2, 1, 3, 1, 0, 3, 2, 0, 1 };
while (device.Run())
{
if (device.WindowActive)
{
device.VideoDriver.BeginScene(true, true, new Color(255, 0, 255, 0));
device.SceneManager.DrawAll();
driver.SetTransform(TransformationState.WORLD , new Matrix4());
Irrlicht.Video.Material m = new Material();
driver.SetTransform(TransformationState.WORLD, new Matrix4());
mat.Wireframe = false;
mat.Lighting = false;
//mat.ZBuffer = false;
//mat.ZWriteEnable = false;
//mat.BackfaceCulling = false;
mat.Type = MaterialType.TRANSPARENT_ADD_COLOR;
//mat.Type = MaterialType.TRANSPARENT_ALPHA_CHANNEL;
//mat.Type = MaterialType.TRANSPARENT_VERTEX_ALPHA ;
mat.Texture1 = driver.GetTexture("../../Media/irrlichtlogoalpha2.tga");
IrrVertices Quad = new IrrVertices();
Color White = new Color(130, 255, 255, 255);
Quad.verts[0] = new Vertex3D(new Vector3D(0, 0, 0), new Vector3D(-1, -1, -1), White, new Vector2D(0, 1));
Quad.verts[1] = new Vertex3D(new Vector3D(1, 0, 0), new Vector3D(1, -1, -1), White, new Vector2D(1, 1));
Quad.verts[2] = new Vertex3D(new Vector3D(1, 1, 0), new Vector3D(1, 1, -1), White, new Vector2D(1, 0));
Quad.verts[3] = new Vertex3D(new Vector3D(0, 1, 0), new Vector3D(-1, 1, -1), White, new Vector2D(0, 0));
driver.SetMaterial(mat);
driver.DrawIndexedTriangleList(Quad.verts, 4, indices, 4);
//device.VideoDriver.Draw2DImage(Logo, new Position2D(200, 80), new Rect(0, 0, Logo.Size.Height, Logo.Size.Width), new Rect(new Position2D(0, 0), device.VideoDriver.ScreenSize), new Color(255, 255, 255, 255), true);
//device.VideoDriver.Draw2DImage(Logo, new Position2D(220, 100), new Rect(0, 0, Logo.Size.Height, Logo.Size.Width), new Rect(new Position2D(0, 0), device.VideoDriver.ScreenSize), new Color(50, 255, 255, 255), true);
device.VideoDriver.EndScene();
}
}
}
}
}