[VB6] 2D Engine

Pagina: 1
Acties:

  • El_Quedro
  • Registratie: September 2001
  • Laatst online: 04-08-2025

El_Quedro

Pininfarina

Topicstarter
Hallo allemaal,

ik ben al een tijdje bezig geweest met een 2D Engine voor Visual Basic.
Dit is gewoon voor pure fun gebouwd, want snel is het niet echt.

Bij een resolutie van 200x200 haalt het wel een FPS van 400 :+
(om een plaatje met transparante delen over een ander plaatje te laten scrollen)

De hele engine is gebouwd zonder hulp van DirectX/DirectDraw whatever. Het is pure code :Y)

Ik moet alleen nog een rotate functie hebben en een scale functie.
Scale is niet zo moeilijk, maar word pixelig.

Rotate is echt wel heel moeilijk, het werkt allemaal net niet.... :(

Misschien kunnen we elkaar helpen en een leuke 2D engine in elkaar schroeven. Ik zal hem binnen kort online gooien.

Het is een dll file die je in je references moet openen.

graag commentaar/vragen/opmerkingen/ideeen over de engine.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 31-08 15:26

.oisyn

Moderator Devschuur®

Demotivational Speaker

beetje weinig info om commentaar over te geven, denk je ook niet? :)

Waarom maak je trouwens geen gebruik van DirectX? Dat je het zelf kan is heel tof enzo, maar echt zinniig is het niet :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

hoe roteer je de image nu?

  • El_Quedro
  • Registratie: September 2001
  • Laatst online: 04-08-2025

El_Quedro

Pininfarina

Topicstarter
Ik weet dat het onzinnig is, maar goed, moest toch wat ^_^
Je kan het wel goed gebruiken om bijvoorbeeld een paint programma te maken maar goed.

Ik zit nu op stage, en heb geen toegang om screenshots of de engine zelf dan ook te uppen. Dus sorry, meer info kan ik (nog) niet geven.
nog niet :P lol
de meeste waren echte pure rekensommen, koste veel CPU kracht, en de uiteindelijke image zag er neit uit..

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 31-08 15:26

.oisyn

Moderator Devschuur®

Demotivational Speaker

In principe zijn er 2 basic methodes om een image te roteren

Een is om polygonen te gebruiken. Dat is gewoon de 4 punten opzetten en scanlines interpoleren.

De ander is door right en down vectors bij te houden. Je begint op je scherm te tekenen, van links naar rechts, van onder naar boven, en tegelijkertijd houd je de coordinaten in je image bij. Een stap naar rechts is de right vector optellen bij je huidige positie in de image, en een stap naar onder is de down vector erbij optellen
Wel ervoor zorgen dat je een groter gebied dan de grootte van je image afgaat, omdat een geroteerde image daar niet helemaal in past :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

http://www.gamedev.net/reference/articles/article811.asp <- artikel over bitmap rotation.
misschien dat je er iets aan hebt.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Als je het echt zelf wilt uitrekenen kun je het beste beginnen in het output image. Loop door de output image, en kijk welke pixel er bij zou horen uit het input image. Op deze manier voorkom je dat er gaten ontstaan in je plaatje. Dezelfde techniek kun je trouwens ook op schalen toepassen.

Om de kwaliteit een beetje te verhogen kun je een uitgebreidere sample methode gebruiken. ipv dat je de pixelwaarden afrond en 1 pixel uit je source pakt, pak je een gewogen gemiddelde van de pixels die om je sample punt heenliggen.

Desnoods kijk je ook naar het geresampelde buurpixel om te achterhalen hoe groot het gebied is wat bijdraagt aan de pixel.

Uiteindelijk zou je daarbij ook nog mipmapping kunnen gebruiken. Dan heb je van je source image verschillende goed geschaalde versies (telkens 22x zo groot/klein) en bepaal je adhv die buur welke resolutie het beste overeenkomt.

Tot slot zou je ook daar weer een gewogen gemiddelde van meerdere maps van kunnen maken voor nog betere kwaliteit....


MAAR... Eigenlijk is dit dikke onzin, aangezien dit allemaal tegenwoordig standaard in de grafische kaart ingebakken is....

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • El_Quedro
  • Registratie: September 2001
  • Laatst online: 04-08-2025

El_Quedro

Pininfarina

Topicstarter
Bedankt voor jullie info !

Kijk, ik heb er maar 10 uur ingestoken tot nu toe, en ik heb al aardig wat dingetjes gemaakt (alpha channel) e.d.
Aangezien ik later in de Game Industrie wil werken, wil ik graag weten hoe het in elkaar zit.

En trouwens, wat kan je tegenwoordig nog programmeren wat nog niet bestaat? :'(

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

El_Quedro schreef op 09 oktober 2002 @ 14:02:
Bedankt voor jullie info !

Kijk, ik heb er maar 10 uur ingestoken tot nu toe, en ik heb al aardig wat dingetjes gemaakt (alpha channel) e.d.
Aangezien ik later in de Game Industrie wil werken, wil ik graag weten hoe het in elkaar zit.

En trouwens, wat kan je tegenwoordig nog programmeren wat nog niet bestaat? :'(

Het is uiteraard wel goed om het een keertje te doen om te kijken hoe het allemaal in elkaar zit..... Maar ik denk dat je je tijd nu beter kunt steken in het leren van C++... Daarmee kun je deze dingen ook nog op een redelijke snelheid doen..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • El_Quedro
  • Registratie: September 2001
  • Laatst online: 04-08-2025

El_Quedro

Pininfarina

Topicstarter
true..

maar daar ben ik al een tijdje mee bezig ;)

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

op www.pscode.com staan wat manieren, inclusief was ASM versies die je vanuit VB kutn gebruiken.
Pagina: 1