Omnimaga
Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: tr1p1ea on November 28, 2012, 10:58:33 pm
-
Hi guys,
Just thought id let you know that i have uploaded a project to
ticalc.org today. It is a 3D engine for the TI-83+ series calculators.
The program is a 3D model viewer that enables the user to view and
interact with a 3D model in real-time. Note that it renders
flat pattern-shaded polygons. Also included is a utility to convert
Wavefront OBJ models to .8xp programs for use with this
viewer.
It is written in z80 assembly and a 15MHz calculator is recommended.
Also a note that this is a calculator 3D engine, so please dont expect
performance to be awesome or anything. I dont think you are going to
see Halo on your calculator anytime soon with this engine, its more
just for the novelty of it all :).
It is in beta testing so there could be problems. Please report any bugs
if you find any.
Here is a link: http://www.ticalc.org/archives/files/fileinfo/450/45097.html
Also here are some screenies.
(http://img.removedfromgame.com/imgs/scr_0.gif) (http://img.removedfromgame.com/imgs/scr_1.gif)
(http://img.removedfromgame.com/imgs/scr_2.gif) (http://img.removedfromgame.com/imgs/scr_3.gif)
Id appreciate feedback if anyone has some.
Enjoy.
-
Well, as I said yesterday, it didn't make my calculator explode.
Also, is the slowness on the sphere and dark-link models just the performance limit of the calculator?
-
This looks awesome!
I wonder if I could make a 3d rhombicuboctahedron in it! That would be awesome!
Too bad my 83+ isn’t SE though; but I could still have fun on the emulator.
-
DrDnar, Yeah those have a lot of triangles which is a bit of a performance hit for the calculator. Lower detail models are recommended.
That being said, the Dark Link model could easily be reduced in triangle count without affecting visual quality (on the calculator at least).
-
Hmm, it erases the ram on wabbit, but I'll look at it again tomorrow.
-
I would be interested to know what ROM you are using and what wabbitemu version if you have them handy?
-
That's one beautiful spinning cube O.O
Random readme typos :P
Note that there is no ploygon clipping at this stage.
OBJ Format: vertice list then face list by material
calc84maniac - Optimisations and ideas
-
Lol i am always making typos. Though the 3rd one is because Australian English uses 's' instead of 'z' in many words ala US English.
Thanks for the pickup!
-
Lookin' nice!
Keep it up!
-
I think all U.K. based English uses s instead z. I think Australians, British, and Canadians use it, and when Europe and probably Africa and Eastern Europe learn English, they learn U.K. English, and I'm guessing South America and probably east Asia learn American based English.
Although, I wonder, do other places spell it metre? I'm know they spell it favourite and realise, but I have a strange feeling they might spell it meter; I feel like I've seen one or two of the Canadians spell it meter.
-
We spell it metre and centre etc, as well as labour and stuff as well. Right now firefox is telling me off for bad spelling :P.
-
tr1p1ea: You are awesome XD Also, there is almost an identical "Australian English" comment over on TI|BD that was made years ago, so I got a laugh out of it XD
-
:D Now create a starfox clone with that.
-
Glad you posted about it. I don't have much time to try it yet, but I'll check out ASAP. This really looks nice and I love how much detail there is, especially that Mario face. :)
-
I think all U.K. based English uses s instead z. I think Australians, British, and Canadians use it, and when Europe and probably Africa and Eastern Europe learn English, they learn U.K. English, and I'm guessing South America and probably east Asia learn American based English.
Although, I wonder, do other places spell it metre? I'm know they spell it favourite and realise, but I have a strange feeling they might spell it meter; I feel like I've seen one or two of the Canadians spell it meter.
Hm, I never knew that they replaced z with s O.O
-
I just ran this through spell check
be read from eith RAM or FlashROM (they can be archived).
0 is black, 1-5 are are incrementally lighter shades and 6 is white
Please dont try to modify and/or pass this program off
as your own with out first gaining my consent.
Not to be a grammar Nazi or anything
Though the last two are only minor typos that don't matter
-
I think all U.K. based English uses s instead z. I think Australians, British, and Canadians use it, and when Europe and probably Africa and Eastern Europe learn English, they learn U.K. English, and I'm guessing South America and probably east Asia learn American based English.
Although, I wonder, do other places spell it metre? I'm know they spell it favourite and realise, but I have a strange feeling they might spell it meter; I feel like I've seen one or two of the Canadians spell it meter.
Hm, I never knew that they replaced z with s O.O
Me neither, and I'm Canadian. I think Canadians spell it metre, but, as a non-native English speaker, you'll often see me use -re and -er interchangeably. Not sure which English I learnt at school, probably the UK one, but you'll see me speaking American too, or a weird Canadian-American English, I dunno, as I spoke English mainly with Americans for the last 3-4 years.
-
Yeah ill have to correct those silly errors :S. Also i fixed the polygon tearing issue:
(http://img.removedfromgame.com/imgs/polytest32.gif)
-
In my case, we seems to have learned American English at school, because most idioms and spelling we used was the American one. However I noticed most Canadians from the West use British English.
Also this looks very nice tr1p1ea, can't wait for this:
(http://img.removedfromgame.com/imgs/portaloncalcs.gif)
;D
-
In the west we use Canadian English, it's not quite British and not quite American. Most things are spelled the same as the British (ie most of the world) but not everything. The spelling things with a u (like colour) is the standard way in Canada. I have no idea why you learned the American spelling, since American English isn't the Canadian way of spelling things.
http://en.wikipedia.org/wiki/Canadian_English
-
Maybe Quebec english teachers are just kinda nationalist (in Quebec sense) to a certain extent and decided to make us look more American than Canadian when we speak English, or maybe there are just many people here going to USA rather than Canada when they go to trips (especially Boston, New York City and Florida), so they thought it might be a better idea to teach us the English that is spoken the most in North America. :P It's definitively weird, though. It might have changed, though (I went to school from 1991 to 2004)
Maybe we should go back on topic, though. :P (the fact that tr1p1ea is the topic starter might have brought shades of old-time MaxCoderz in this topic, because back in the early days there, topics would often get off-topic ;D )
-
To indeed get back on topic i thought id share a slight update, some very basic lighting effects:
(http://img.removedfromgame.com/imgs/polytest34.gif)
-
Cool o.o How do you determine the lighting for each face?
-
Well this was more of a hax (actually its only 3 lines of code lol) which piggy backs off the back-face culling code. Pretty much finds the angle between the face and the 'camera' and uses that as an index for the pattern list (where the patterns are black dithered to white).
-
Ah, okay, I see :D Cool!
-
Here is a better screenshot of whats going on (i hope):
(http://img.removedfromgame.com/imgs/polytest35.gif)
-
wow, this is looking pretty epic with the lighting O.o
you are making calcgl atm...../me runs
-
Wow, I think even Star FOx on the SNES don't have lightning.
-
By the way, any clue why the program won't let me rotate and zoom simultaneously? Is the 3D taking too much resources to support multiple keypresses?
-
Added polygon clipping, but only in 2D which means that any polygons that have a vertex behind the near plane (z=0) will be culled and not clipped as demonstrated in this screenie:
(http://img.removedfromgame.com/imgs/0-polytest38.gif)
Still that only typically happens when you are 'in the middle' of a model so in most cases it should be acceptable.
Also DJ_O, not it will support that just fine ... but i was too lazies to implement it *hides*.
-
That still is looking so epic, maybe you could add some axe axiom to allow axe programmers to use that?
that would be epic :D
-
what i'd be a lot more interested in would be a general purpose tutorial for all of the difficult 3d problems you had to work out for this (point positioning, texture floodfilling, polygon clipping, determining the proper drawing order, etcetera).
-
Well its been a pretty slow but long learning curve, the most of which has only been since i recently picked this project up again. There are actually only a handful of routines needed to make a rough 3D engine. Ill hopefully be releasing a package so that other programmers can capitalise if needed.
On a side note ive made a little engine test, sort of a space sim:
(http://img.removedfromgame.com/imgs/1-polytest42.gif)
-
That looks rather awesome, if I do say so myself ^^
-
Will the full source code ever be released? If you do, there could be a huge increase in 3D games for the ti-84+, and some people could add more features (For example, I could add textures).
But of course, you don't have to.
-
Ill be releasing the project as a library that programmers can make use of, but i dont see why the source cant also be included.
Its still being refined however so it might be a little way down the track yet.
-
Well its been a pretty slow but long learning curve, the most of which has only been since i recently picked this project up again. There are actually only a handful of routines needed to make a rough 3D engine. Ill hopefully be releasing a package so that other programmers can capitalise if needed.
On a side note ive made a little engine test, sort of a space sim:
(http://img.removedfromgame.com/imgs/1-polytest42.gif)
Somebody MUST make StarFox!
*.* :crazy: :w00t: :crazy: *.*
-
Somebody MUST make StarFox!
*.* :crazy: :w00t: :crazy: *.*
Thepenguin77 did it already here (http://ourl.ca/6640/109231).
-
Really great tr1p1ea. Are you planning to make a game out of this?
-
I was planning on a version of x-wing, but there are some serious 3D movement and tracking routines that i need to write first.
-
wow, that is looking awesome! :D
-
I was thinking of having a few small missions like 'protect a transport' or 'capture enemy ship' or something ... but like i said, i need to finish some complex 3D movement/tracking routines first, hopefully i can knock them over in a timely fashion!
-
Good luck on that venture, tr1p :)
-
I have managed to get the 3D tracking routines working for the most part. The screenie below has a tie fighter flying around its target, which then changes, in which case it reorientates and flies to it instead.
(http://img.removedfromgame.com/imgs/polytest45.gif)
This routine is a must for game scenarios as objects can now find their targets in 3D space. It was a bit of a pain to get working lol!
Also here is a camera lookAt test:
(http://img.removedfromgame.com/imgs/polytest46.gif)
Note that the stars are a quick hack and arent relative to the camera and there is no object sorting as yet (there is polygon sorting but its confined to per-object).
-
I especially like the second screenshot, and the 3D tracking is awesome o.o
-
(http://img.removedfromgame.com/imgs/polytest47.gif)
(http://img.removedfromgame.com/imgs/polytest48.gif)
Just a couple more tests.
EDIT - Also added background decals like this planet:
(http://img.removedfromgame.com/imgs/polytest50.gif)
-
X-Wing!!!!!!!
And it's just looking awesome :D
-
This must be POTY 2013!!!!
-
solidFRAME was already up for 2012 D:
-
solidFRAME was already up for 2012 D:
:'(
This program is fantastic!
-
I know !_! Maybe TICalc will feature an offshoot of this project :D That could be good competition for Portal >.>
-
lol lets not get ahead of ourselves guys :).
Also i added some preliminary shooting:
(http://img.removedfromgame.com/imgs/polytest52.gif)
-
How come it runs so smooth? O.o
It is awesome as always :D
AND ROUND POST COUNT w00t 2^11
-
Its running at 15MHz though, and it slows down with more objects, but still.
More like an x-wing's firing style:
(http://img.removedfromgame.com/imgs/polytest53.gif)
-
X-Wings are cool :D
Now how does it run with normal other fighters and that they explode when hit? :D
-
yeah still working on collisions ... or explosions, those are next!
-
Wow! This is awesome! Nice job Tr1p!
-
Implemented some basic shooting+collision checking:
(http://img.removedfromgame.com/imgs/polytest54.gif)
As it stands, different objects have different firing rates and firing 'sequences'. By firing sequence i mean xwing's shoot from 4 lasers in a pattern where-as something like a tie-fighter will only shoot from 2 lasers alternating ... if that makes sense?
-
Implemented some basic shooting+collision checking:
(http://img.removedfromgame.com/imgs/polytest54.gif)
As it stands, different objects have different firing rates and firing 'sequences'. By firing sequence i mean xwing's shoot from 4 lasers in a pattern where-as something like a tie-fighter will only shoot from 2 lasers alternating ... if that makes sense?
Das awesome.
-
Star Fox/Starwing/Lylat Wars finally becoming a reality?? O.O
-
Here is a screenie of how the HUD is layed out as such with speed, torpedoes and shields. I believe that the x-wing shields are also configurable fore and aft, and that you can transfer power from engine/lasers to shields and vice-versa ... but i think those are beyond the depth of this project also:
(http://img.removedfromgame.com/imgs/hud.gif)
The tie-fighters with have some hull integrity but no shields also.
Each object in the engine has a chunk of data associated with it to describe things like shields and such :).
What i find exciting is that the movement routines mean that i can automatically make the 'torpedoes' track and hone-in on their targets by setting their target byte to a valid object. I havent implemented them yet but it is a pretty trivial task :).
-
Implemented some basic shooting+collision checking:
[...]
As it stands, different objects have different firing rates and firing 'sequences'. By firing sequence i mean xwing's shoot from 4 lasers in a pattern where-as something like a tie-fighter will only shoot from 2 lasers alternating ... if that makes sense?
That is looking awesome! Great work over there! :D
-
Would it be possible to make planets zoom in/out in stages that are not wire-frame, like in Star Fox, as you approach the next stage, for example?
-
I guess it would be possible but it might be a bit of a tax on the processor (if i have to scale sprites).
At the moment the planet is just a decal to make the starfield less boring :).
At the moment the game is closer to the original x-wing than starfox im afraid :(.
*** Massive bump! ***
I have ported a small portion of this engine to the 84C just to see if its even possible. I have a small test screenie of a colour 3D cube. Note that this screenie is far choppier than on calc (its a fair bit smoother on hardware).
(http://img.ourl.ca//1375050663.gif)
This cube does exist in a 16-bit 3D world (you can move around it etc). Its just a start but pretty cool to see it in action on the real thing :).
-
wait, this thing is still in-dev? O.O
that is looking awesome! :D
-
Just wow :crazy:
-
Very nice :)
-
Looks great Tr1p!
-
Wow, color solidFRAME :D That is really cool :)
-
I have seen many 3d engine before... but these things still amaze me o_o
-
Yeah it's pretty cool that you're porting it to the CSE. :D I wonder how fast it'd run with more complex models though ?
-
But you are only updating the center of the screen each frame, right?
-
That is great ! Could you share the executable so we can test on real hardware ?
-
Amazing O.O I really hope this'll get any further !
-
Wow this is impressive tr1p! I'm surprised at the speed so far, although I am curious about how fast it will run when you'll have to re-display a black background with stars. Couldn't the stars just be displayed pixel by pixel and limited to 50 per screen with only a planet in the background to avoid redrawing the entire screen over and over?
-
The way it works currently is that triangles are 'redrawn' with the background colour to clear (instead of a fullscreen clear).
For stars its just a matter of drawing a handful of pixels around the screen. Suprisingly drawing pixles isnt much slower than on the old calcs. For speed reasons i can just draw less stars. The planet decals may have to be shelved however.
I have high-ish hopes since most of the time this game wont require too many triangles to take up large portions of the screen, though i may have to look at a strategy for when they do.
Right now im turning it into an APP, just need to rewrite some SMC riddled routines :).
-
Well if the entire shape is redrawn every frame, then this is quite fast actually, and yeah I agree about drawing small amounts of pixels. I made a Link sprite using pt-On/off before and it would move pretty fast. On emulators it flickered like mad, though.
As for the stars, would it be possible to make them move around or even zoom in to create a 3D effect?
Also I hope this doesn't halt xLIB progress for a very long time lol :P
-
What if this got included in xlib O.O
mind=blown
-
I'm unsure if this will be included early on, because 3D is very hard and will probably not be used as much as sprites, plus it might led to many newbies getting over-excited then starting large 3D projects even though they don't even know how to use Getkey.
-
Well the library (quaternion, matrix, extensive math etc) is quite substantial in size so im not sure if it will make it into xLIB lol. I dont think the speed will be there if i did :S.
Its only a test to see if its viable in colour. Fingers crossed i can find a happy medium.
-
If the color version is successful, does it means that the monochrome one will be discontinued like with Doors CS? Ben_g was wondering about that on IRC since he doesn't have the color calc.
-
Well the only real difference will be the drawing routines. The actual engine has been left unchanged as far as the way it handles objects is concerned.
I should be able to release appropriate versions for each platform (if i finish).
-
*waits patiently for a color Rubik's Cube for the 84C and/or Nspire*
-
By the way, was the CSE version of SolidFrame affected by the recent xLIB data loss?
-
Fortunately it wasnt affected by the data loss. But progress will be delayed while xLIB code is bought back up to speed.
-
Ok I see. Good luck on xLIB. :)
-
Btw I just saw this on Youtube and I thought this was cool :D
-
looking awesome O.O
-
I have started porting this program to the 84C, for the most part it is going smoothly, although naturally it will be slower.
Still its pretty cool to see colour 3D on calc :).
Note that these screenshots appear to run a bit faster than on actual hardware:
(http://img.ourl.ca//mario.gif) (http://img.ourl.ca//dlink.gif)
There are also some drawing glitches in the screenshots that dont appear in the emulator or on calc.
-
wow, that just blew my mind O.O
-
Yeah pretty epic *.*
-
yes, it is super cool :thumbsup:
-
Looks like you have some serious concurrence here TheMachine. :D
-
Whoa, is there anything that can't be done on these things. Amazing :D
-
I made a youtube video demonstrating the basics thus far, this better demonstrates the actual speed:
-
You sir, are amazing, great job! :thumbsup:
-
Which resolution does it run at ? Because it looks pretty awesome. :D
-
NOw Implement Skyrim!
Just the Skyrim Logo would be quitly rad!
-
It runs at half resolution, which still allows for more detail than the b&w versions. Plus the colour really helps.
I was pretty happy that it wasnt terribly slow :).
-
It's really good that polygon sorting works too, this definitively have potential to become a Star Fox/Starwing/Lylat Wars game O.O
-
Yeah thats also something that i need to optimise since sorting reduces the framerate by heaps ... but everything looks funky without it!
I think ill try the Mario head stuff as an experiment.
I also wonder if the star wars dog fighting game would work at a playable speed.
-
Yeah the Mario 64 mini game I suggested on Cemetech would be nice. It isn't that much and we can neither win nor lose, but it was pretty entertaining back then.
-
majoras mask for the +C :trollface:
-
I meant to post a few days ago that I thought this was awesome o.o
-
Pretty cool Tr1p! :D
-
Thanks guys/gals :).
If i get time to finish off a few things i might be able to have something ready for people to try out over the weekend :).
-
Thanks guys/gals :).
If i get time to finish off a few things i might be able to have something ready for people to try out over the weekend :).
Sounds cool to me !