Archief - c++ 2D en 3D

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

sneaky001

Legacy Member
Hallo, ik ben nog steeds een leek op het vlak van programeren maar ben nu toch al enige tijd bezig met dit onderwerp... Nu was m'n vraag of het mogelijk is om met c++ 2D en 3D toepassingen te ontwerpen??

Grayfox

Legacy Member
Ja dat is zeer zeker mogelijk :)
Er worden dan samen met C++ verschillende API's gebruikt zoals OpenGL bijvoorbeeld (2D/3D) of DirectX

Krueger

Legacy Member
Kzou ook zeggen directX. Ge hebt daar directdraw (2D) en direct3D. Als ge de SDK download krijgde redelijk wat voorbeelden mee. Maar met directX beginnen als ge nog een leek zijt in programmeren is wel niet echt aan te raden denk ik. Ge gaat nogal verloren lopen in de klassen en syntax.

sneaky001

Legacy Member
Kwil er ook nog niet direct mee beginnen, het was mar gewoon om eens wat te weten...

wlibaers

Legacy Member
Je kan natuurlijk ook software rendering gebruiken. Dan heb je geen Direct3D of OpenGL nodig (nadeel is wel dat het trager is, en bovendien moeilijker).

killgore

Legacy Member
OpenGL kan perfect met 2D omgaan btw ;).

en je zal ook voor opengl en directx een window-api moeten vinden, zoals de WinApi, SDL (dunno of deze werkt met directx), glut (opengl ;)), ...

visual_bAstArd

Legacy Member
mss rare vraag maar kan ik ook games schrijven in vb.net?

QplQyer

Legacy Member
krueger zei:
Kzou ook zeggen directX. Ge hebt daar directdraw (2D) en direct3D. Als ge de SDK download krijgde redelijk wat voorbeelden mee. Maar met directX beginnen als ge nog een leek zijt in programmeren is wel niet echt aan te raden denk ik. Ge gaat nogal verloren lopen in de klassen en syntax.

Klassen? Had DirectX maar klassen, maar nee allemaal structs die je moet invullen en stuff, bah.

Aanrader boek over dit onderwerp: "Tricks of the windows game programming gurus", geschreven door André Lamothe, kost iets van een 60 euro bij hcw.be
en is echt een goeie boek over dit onderwerp (buiten dan zijn niet zo OO design).

Krueger

Legacy Member
QplQyer zei:
Klassen? Had DirectX maar klassen, maar nee allemaal structs die je moet invullen en stuff, bah.

Aanrader boek over dit onderwerp: "Tricks of the windows game programming gurus", geschreven door André Lamothe, kost iets van een 60 euro bij hcw.be
en is echt een goeie boek over dit onderwerp (buiten dan zijn niet zo OO design).

Erm, directX zit wel degelijk vol met klassen hoor. Allé, als ge het toch wat deftig aanpakt. Ge kunt natuurlijk tot op een bepaald moment zonder klassen werken, maar ene keer dat ge deftige code wilt beginnen schrijven gade toch best werken met klassen. Ge moet maar ne keer kijken naar de voorbeelden die zijn meegegeven met de SDK. Der zijn wel degelijk genoeg klasses aanwezig.

QplQyer

Legacy Member
Krueger zei:
Erm, directX zit wel degelijk vol met klassen hoor. Allé, als ge het toch wat deftig aanpakt. Ge kunt natuurlijk tot op een bepaald moment zonder klassen werken, maar ene keer dat ge deftige code wilt beginnen schrijven gade toch best werken met klassen. Ge moet maar ne keer kijken naar de voorbeelden die zijn meegegeven met de SDK. Der zijn wel degelijk genoeg klasses aanwezig.
Te zien wat je klassen noemt natuurlijk, het DX systeem vind ik nu niet enorm Object-georiënteerd moet ik zeggen, daarom dat ik dit zei, in principe zijn het klassen enzovoort ja (wel COM-objecten eigenlijk), maar er is toch wel veel ruimte voor verbetering mogelijk imo (verdere abstractie, geen structs die je moet invullen maar constructors gebruiken, geen structs die je moet meegeven die ingevuld worden, maar gewoon een pointer die gereturnt wordt mbv new en dan de constructor ... dat is wat OO inhoudt imo, daarom noemde ik het geen klassen, maar ik bedoelde weinig object-gericht).

Ofwel leert mijn boek me totaal verkeerde dingen ... maar dat betwijfel ik wel (ok ja, em gebruikt geen MFC, mss gebruikt de sdk dat wel).

Flipkikker

Legacy Member
wtf, directx NIET OO ?? :wtf:
dx kan idd wel beter, bepaalde classes soms wel wat nutteloos apart gestoken enzo, maar daarvoor maak je dan toch een engine :baard:

xytro

Legacy Member
GDI (api zit standaart bij uw winxp) valt ook goe mee als ge het simpel en 2d wilt houden.

killgore

Legacy Member
xytro zei:
GDI (api zit standaart bij uw winxp) valt ook goe mee als ge het simpel en 2d wilt houden.
GDI bij winxp, jeez, mssch wa meer opzoekingswerk doen.

WinGDI is zowat sinds jaar en dag verbonden aan de WinApi en zorgt eigenlijk voor alle grafische output (van tekst, afbeeldingen tot knoppen). Ook al werk je niet altijd via de gdi (door omwegen zoals child controls), het zit wel altijd in je programma.

GDI kan wel wat aan en is zeer handig als je geen groot spel wilt maken (je hebt al geen extra library als directx nodig), maar er zijn een pak nadelen:

-Geen color keying (std toch)
-geen flipping surfaces, framebuffering, hoe je het ook wilt noemen (je tekent alles rechtstreeks naar het scherm dus, wat lelijke resultaten kan geven op de iets tragere pc).
-GDI is traag voor games
-Sprites zijn moeilijker te maken dan in API's zoals directdraw.

Voor de rest wordt de GDI nog gebruikt bij allerhande zaken (die niet zo tijdskritisch zijn), zo zal je in directdraw vaak de GDI gebruiken (bv. voor het laden van bitmaps, tekstoutput, ...).

fretn

Legacy Member
doe maar met opengl, als je later omschakelt naar een ander platform, zal je zoveel werk niet hebben om het te porten \o/

Jacko

Legacy Member
QplQyer zei:
Te zien wat je klassen noemt natuurlijk, het DX systeem vind ik nu niet enorm Object-georiënteerd moet ik zeggen, daarom dat ik dit zei, in principe zijn het klassen enzovoort ja (wel COM-objecten eigenlijk), maar er is toch wel veel ruimte voor verbetering mogelijk imo (verdere abstractie, geen structs die je moet invullen maar constructors gebruiken, geen structs die je moet meegeven die ingevuld worden, maar gewoon een pointer die gereturnt wordt mbv new en dan de constructor ... dat is wat OO inhoudt imo, daarom noemde ik het geen klassen, maar ik bedoelde weinig object-gericht).

Nope, DirectX is inderdaad nog vrij 'C', OpenGL ook trouwens, de voornaamste reden hiervoor is te zoeken in het feit dat ze enerzijds de foothold zo klein mogelijk willen houden (C++ heeft nu eenmaal sneller codebloat) en anderzijds compatible willen blijven in alle richtingen. Als ze het framework in C++ maken en er zijn er die dat willen gebruiken in Ansi C kunnen ze het wel schudden. Langs de andere kant is het ook nie zo heel veel werk (als dit al niet bestaat) om een abstractielayer te schrijven. Liefst dan nog eentje die zowel aan DirectX als aan OpenGL gekoppeld kan worden...

joyrider

Legacy Member
gdi is traag, SDL is vrij simpel in gebruik en kunt er opengl mee aanroepen ook wilde ooit naar 3d overschakelen. Tis in alle geval veel gemakkelijker dan directx en tis cross platform, (linux, windows, beos, macos, ... compatible)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan