Jag gör ett isometriskt RPG spel, och använder för närvarande DirectDraw i DirectX 7. Jag vill i framtiden lägga till ljuseffekter t.ex. att området kring en lyckta är extra upplyst, skillnad i ljus mellan dag och natt o.s.v. Efftersom DirectDraw slagits samman med Direct3D i DirectX 8 och 9. Så tycker jag du kan titta på det. Detta gjordes för att den ansågs onödigt att använda två bibliotek. Dessutom får du mer funktioner i och med att du använder grafikkortets 3D del. Jag tycker att det är onödigt att lära mig något nytt nu när jag börjat förstå på DirectDraw. Men det är kanske nödvändigt. Min fråga är alltså om det är möjligt att använda DirectDraw och Direct3D parallellt. DirectDraw kommer bara finnas kvar för bakotkompabilitet. 2D hantering kommer att ske genom Direct3D. Om du inte lär dig detta kommer du få fortsätta jobba med DirectX 7's bibliotek för DirectDraw. Vet inte om det går att kombinera dessa båda tekniker. Tror inte dset är kompatibla. Det var därför man slog samman dem. ja det går att mixa ddraw och d3d ... man måste sätta någon 3d flagga på sin surface som man ritar på... Jag skulle vara väldigt tacksam om du kunde leta fram koden till ditt strategispel, eller på något annat sätt ge mig lite hjälp på traven. Ljuseffekter skapar du genom att göra en alphamask som motsvarar ljusets utbredning sedan plottar du den som en alfa-kanal till di ddraw-surface så att centrum hamnar på ljuskällan... När jag läser i hjälp filen till DirectX 7 SDK, står det att Alpha Blending för nävarande ej stöds i DirectDraw. Men det kanske inte stämmer... When the time comes to do complex things with DirectDraw, you finally realize that DirectDraw lacks some capabilities. For example, alpha blending is not implemented, rotating a surface is not supported in software and probably no card supports this capability in hardware. Instead of performing this task in software using a C or an ASM DLL, you could use Direct3D to implement these capabilities in hardware, enabling also to use the whole range of Direct3D capabilities... Men alpha blending är ju enkel att skapa på egen hand kolla på: Tack alla som har svarat. ni har verkligen varit till stor hjälp. Jag var nästan på väg att ge upp och börja lära mig DirectX 8 istället, men än en gång har Pellesofts forum räddat mig.Ljus i DirectDraw
Vad jag har föstått finns det inget stöd för dylika effekter i DirectDraw, utan endast i Direct3D. Jag tycker att det är onödigt att använda Direct3D till ett renodlat 2D spel, så nu undrar jag om det är möjligt att göra all 2D rendering i DirectDraw, och lägga till ljuseffekter med hjälp utav Direct3D. Kan man använda de båda tekninkerna parallellt, eller är enda lösningen att helt gå över till Direct3D?
/JacobSv: Ljus i DirectDraw
Sv: Ljus i DirectDraw
/JacobSv: Ljus i DirectDraw
Sv: Ljus i DirectDraw
minns inte hur man gjorde , men det går ..
jag använde detta föratt göra just ljuseffekter i et gamalt hexagonbaserat strategispel jag började på för några år sedan...
//RogerSv: Ljus i DirectDraw
En artikel som beskriver hur man uppnår önskat resultat skulle även det vara bra.
/JacobSv: Ljus i DirectDraw
Sv: Ljus i DirectDraw
Hur som helst. Är det någon som vet var man kan läsa mer om det här med Alpha kanaler?
/JacobSv: Ljus i DirectDraw
Utdrag från:
Using Direct3D for 2D applications
http://www.chez.com/scribe/en/directx/d3d_ddraw.htmSv: Ljus i DirectDraw
http://thorkildsen.no/faqsys/docs/texlight.txt
hela faqsys är för övrigt en bra resurs i ämnen som detta
http://thorkildsen.no/faqsys/Sv: Ljus i DirectDraw
Ett speciellt tack till Andreas Hillqist, vars artikel Using Direct3D for 2D applications var precis vad jag letade efter.
/Jacob