MaxCoderz

for your 1 bit pleasure!

All times are UTC




Post new topic Reply to topic  [ 36 posts ]  Go to page 1, 2, 3  Next
Author Message
PostPosted: Mon 18 Oct, 2010 2:09 am 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Three years later I decided to spend a weekend working on a little 3D engine for the TI-83+.

Image     Image

Image     Image

This project lives on in name, anyhow! I'm not sure whether I'll do much more on it; it uses a simple BSP tree structure to sort the geometry for rendering. More information and a download of the binary can be found on my website.

(This project is still officially discontinued, but I thought I'd check if anyone was paying attention to MaxCoderz any more).


Top
 Profile  
Reply with quote  
PostPosted: Mon 18 Oct, 2010 5:16 am 
Offline
Calc Wizard
User avatar

Joined: Fri 17 Dec, 2004 10:22 pm
Posts: 745
Location: Wandering around in the Jungle...
Ah so there is still life here...you guys are about as active as RS ha. Looks good though Ben.

_________________
The Revolution is here...


Top
 Profile  
Reply with quote  
PostPosted: Tue 19 Oct, 2010 3:28 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Heh, cheers. Someone has to log in to delete the spam bot accounts, after all. :-)


Top
 Profile  
Reply with quote  
PostPosted: Thu 21 Oct, 2010 11:40 am 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 4095
Location: I cant seem to get out of this cryogenic chamber!
WOW!

Thats fantastic Ben. I was thinking about this project the other day for some reason (in particular the one with the scrolling background) and here we go, you've worked on it! :).

_________________
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Image
Image


Top
 Profile  
Reply with quote  
PostPosted: Thu 21 Oct, 2010 9:39 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Thank you, tr1p1ea! I'm glad to see you're still with us. :)

I once had a good PDF that described DOOM-style rendering, with a particularly interesting bit on a good way to handle multiple-height sectors and how to efficiently render them (including the floor or ceiling between them). I haven't been able to find it again, though, and my experiments haven't ended up working very well. I wish I could find it! Unfortunately, work has not left me much time to do any more work on this (a recurring trend, I fear). :(


Top
 Profile  
Reply with quote  
PostPosted: Mon 25 Oct, 2010 8:27 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
I found the PDF - A Brief Summary of DOOM-style Rendering by Robert Forsman and Bernd Kreimeier. Leafing through it gave me a few nudges in the right direction, and the engine now has limited support for variable-height floors and ceilings.

Image

More information and downloads for the TI-83+ and TI-83 can be found, as before, in my journal.


Top
 Profile  
Reply with quote  
PostPosted: Tue 26 Oct, 2010 10:00 pm 
Offline
Regular Member
User avatar

Joined: Wed 18 Oct, 2006 7:34 pm
Posts: 112
Location: The ex-planet Pluto
Wow Ben, that looks great! Good to see you're still z80 coding :)

_________________
~calc84maniac has spoken.

Projects:
F-Zero 83+
Project M (Super Mario for 83+)


Top
 Profile  
Reply with quote  
PostPosted: Tue 26 Oct, 2010 10:16 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Thanks, I'm sure you'd be able to write a much faster engine but it's been a fun learning experience for me. :-)


Top
 Profile  
Reply with quote  
PostPosted: Thu 28 Oct, 2010 11:58 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
 
Image     Image


One of the above screenshots is from DOOM, the other is from Nostromo (I'm not telling you which is which). More information about the changes and a new demo binary can be found on my website. :)


Top
 Profile  
Reply with quote  
PostPosted: Sun 31 Oct, 2010 7:51 am 
Offline
Calc Wizard
User avatar

Joined: Fri 17 Dec, 2004 10:22 pm
Posts: 745
Location: Wandering around in the Jungle...
Ha ha ha Ben I cracked up at that.

I'll have to check out the new binary. I didn't see you got the variable height working. Very cool man.

_________________
The Revolution is here...


Top
 Profile  
Reply with quote  
PostPosted: Tue 02 Nov, 2010 11:13 am 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Hehe, thank you. :) I've been doing some heavy optimisation work over the weekend and managed to boost the performance when looking at the stairs on the TI-83+ to the target 10 FPS (from 6 FPS). It certainly feels a lot smoother, in any case. The engine also only needs 3 clipping buffers instead of 5 (saving 512 bytes of RAM) and moved all temporary buffers (clipping buffers and transformed vertices) to dynamically-allocated RAM rather than baking them into the binary. The result was a binary that had a lot more useful code in it but was much smaller than the previous version!

I've since slowed the engine down considerably and inflated its size by adding "Things" (objects represented with sprites):


The 14 FPS is when running at 15MHz. :( The sprite is supposed to be a lamp (based on a similar sprite in DOOM). There's currently a limitation of one Thing per subsector (they are drawn back-to-front in order of subsector, so if there are multiple Things in a subsector these also need to be sorted from back-to-front before rendering). The sprite rendering code is also very clumsy, having a habit of exploding and drawing nonsense when you get very near to the sprite (when the projected width or height is greater than 128 pixels) and not stretching the sprite especially smoothly (it sometimes goes a little too far underneath the sprite, drawing junk pixels). These things need fixing.

More pressingly, if you stand in one particular spot in the above level and look in one particular direction one of the far walls is drawn incorrectly; if you imagine the lines connecting the top and bottom edges of a wall usually looking like an equals sign '=' then this seems to be flipping the top and bottom coordinates on one end, looking like an 'X'. I'm not sure why this is or where the bug can have come from; I only noticed it when running at 15MHz, presumably because the higher frame rate means finer movement and so you're more likely to hit the problem spot (whereas at 6MHz you tend to move much further each frame).


Top
 Profile  
Reply with quote  
PostPosted: Wed 03 Nov, 2010 1:57 am 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
I've written a fairly rough description of how I'm handling occlusion (clipping of geometry so you can't see through walls) and how that has been expanded to support sprites in my latest journal post. I also fixed the mysteriously flipping wall (a careless 32-bit to 24-bit integer truncation) and the ugly sprite scaling. There is a new demo which uses a larger two-room map - the 6MHz TI-83 and TI-83+ struggle with it a bit, I'm afraid, so for those with more advanced calculators don't forget to hit Zoom to switch to 15MHz (I hope to get it running fairly smoothly on a 6MHz calculator as that's all I own myself).

Image

The above image is a link to an animated screenshot.


Top
 Profile  
Reply with quote  
PostPosted: Sun 07 Nov, 2010 2:57 am 
Offline
Regular Member
User avatar

Joined: Wed 18 Oct, 2006 7:34 pm
Posts: 112
Location: The ex-planet Pluto
I ran the demo on my TI-84+SE, nice work! I can't use it in 15MHz though, because there is not a sufficient delay when updating the LCD. The display becomes completely garbled.

_________________
~calc84maniac has spoken.

Projects:
F-Zero 83+
Project M (Super Mario for 83+)


Top
 Profile  
Reply with quote  
PostPosted: Sun 07 Nov, 2010 3:16 am 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Whoops, sorry about that, I'm using the code for ionFastCopy. I'll replace it with something a little more robust!


Top
 Profile  
Reply with quote  
PostPosted: Mon 08 Nov, 2010 1:06 am 
Offline
New Member
User avatar

Joined: Thu 19 Nov, 2009 12:33 am
Posts: 33
Location: you have a cute head
i've always wondered about occlusion in 3d. i'll have to check back in a couple of years when your source is cleaner and i can actually understand it.
nice work, ben :)


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 36 posts ]  Go to page 1, 2, 3  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB ® Forum Software © phpBB Group | DVGFX2 by: Matt