Author Topic: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !  (Read 33613 times)

0 Members and 1 Guest are viewing this topic.

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Hi guys !

Some of you may be aware of my "super-secret-project", and now that it reached a releasable state, I don't make you wait any more :P

So, the project I'm working on is an axiom (ASM for Axe so) which allows you to work with 3D vertices in a high-level way. Before saying anything, please know that I didn't made any 3D calculus during the development of this axiom. I just ported the 3D routine set Juha3D by yhean from pure ASM to Axe-friendly ASM, which still was a PITA that took me 27 days, especially because I've fully done it with Mimas (yeah, I'm a great Mimas fan) ;D So, all credits goes to him (wherever he is now) for the 3D calculations (and I would especially thank him for his wonderful macros and SMC that aren't allowed in an axiom coded with Mimas and which gave me strong headaches).

Instead of explaining the way it works any further, have a look at the 3 current commands of the axiom, which are all available in the [PRB] menu ([math][?]) :

CommandTokenEffect
CalcMatrx(x_angle,y_angle,z_angle)randInt(Calculates the rotation matrix given the X, Y and Z angles. The matrix is written to the whole 9 bytes of OP1, this means that it got destroyed by float{}, GetCalc or a call to Ans (tell me if I forgot something).
RotVertx(x_coord,y_coord,z_coord,outputArea)randNorm(Rotate a vertex given its X, Y and Z coordinates according to the rotation matrix calculated with a previous call to CalcMatrx and writes the resulting coordinates to the 6 bytes starting at outputArea.
ProjVertex(x_coord,y_coord,z_coord)randBin(Converts 3D coordinates into 2D ones. Basically, it takes a point in space and converts it into a point on screen. It returns the X coordinate in L and the Y coordinate in H, so make a modulus 256 on the returned value to have the X coordinate, and divide it by 256 to have the Y coordinate. Don't forget that you'll need to use a camera offset (distance from the camera to the plan) to avoid having the vertices display right on your face !

And now ... examples time :D !

The classic cube :

8 vertices, 12 links, 4 calls to getKey, 29 FPS

Omnimaga's logo :D :

20 vertices, 30 links, 4 calls to getKey, and still strong - 14 FPS !

Trip through the galaxy !

32 vertices, no links, 4 calls to getKey, moving camera, 12 FPS

I attached the axiom itself, AXMJH3D.8xv, and the source of the cube program as a small example, CUBE.8xp.

Note that it's not a complete project. Yeah, it's only a port of Juha3D, but I'm actually looking for people who would want to get into it with me in order to build a full axiom that could provide by himself all the functionalities that working with volumetric objects would require (scaled down to calc dev of course, so I'd be really happy only with polygon filling, but I'm sure people can think - and realize - better than only that ;) ).

So, to make it clear : if you want to team up with me to carry this axiom even further, do a big up ;)

Have fun, and share comments !



LAST UPDATE : http://ourl.ca/18452/346582
« Last Edit: April 30, 2013, 01:22:19 pm by Matrefeytontias »

Offline Geekboy1011

  • The Oneironaut
  • Donator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #1 on: March 02, 2013, 03:51:08 pm »
Ok that is really cool. i wonder what kinda 3d games we might get out of this now :D

Also one thing that i think would help a project like this is writing a custom screen drawing routine so you can shove some of the math/maintenance code in the lcd delay for a hopefully decent speed up where applicable
« Last Edit: March 02, 2013, 03:53:44 pm by Geekboy1011 »

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #2 on: March 02, 2013, 03:56:36 pm »
Thanks :D I first thought about a Star Fox like or something ...
* Matrefeytontias dreams about nice things

EDIT to answer your EDIT ;D : the axiom itself only does calculations and doesn't draw anything, I'm just using Axe's routines to display something.
« Last Edit: March 02, 2013, 04:00:22 pm by Matrefeytontias »

Offline ben_g

  • Hey cool I can set a custom title now :)
  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1002
  • Rating: +125/-4
  • Asm noob
    • View Profile
    • Our programmer's team: GameCommandoSquad
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #3 on: March 02, 2013, 05:03:31 pm »
Matrefeytontias and me just decided on IRC to team up for this project.
My projects
 - The Lost Survivors (Unreal Engine) ACTIVE [GameCommandoSquad main project]
 - Oxo, with single-calc multiplayer and AI (axe) RELEASED (screenshot) (topic)
 - An android version of oxo (java)  ACTIVE
 - A 3D collision detection library (axe) RELEASED! (topic)(screenshot)(more recent screenshot)(screenshot of it being used in a tilemapper)
Spoiler For inactive:
- A first person shooter with a polygon-based 3d engine. (z80, will probably be recoded in axe using GLib) ON HOLD (screenshot)
 - A java MORPG. (pc) DEEP COMA(read more)(screenshot)
 - a minecraft game in axe DEAD (source code available)
 - a 3D racing game (axe) ON HOLD (outdated screenshot of asm version)

This signature was last updated on 20/04/2015 and may be outdated

Offline Geekboy1011

  • The Oneironaut
  • Donator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #4 on: March 02, 2013, 06:10:47 pm »
What im saying is. If you were to offer a function to handle screen updates you could put some of the work in the delay and there for save some clock cycles. Its just an idea.

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #5 on: March 03, 2013, 01:10:47 am »
Thanks :D I first thought about a Star Fox like or something ...
* Matrefeytontias dreams about nice things
There is already a StarFox project by thepenguin77, but it only runs for 15MHz models, so not for your 83+.

Will the Axiom support solid walls (even if they are only white, with no textures) or only wires ?
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #6 on: March 03, 2013, 01:46:45 am »
Wow looks very nice. THe first two screenshots look quite fast and the 3rd one reminds me of Final Fantasy ending splash screens. :)

Also I didn't know Juha3D was actually released. Back in 2003 the official site was just a giant ASCII art with no more download link.
Thanks :D I first thought about a Star Fox like or something ...
* Matrefeytontias dreams about nice things
There is already a StarFox project by thepenguin77, but it only runs for 15MHz models, so not for your 83+.

Will the Axiom support solid walls (even if they are only white, with no textures) or only wires ?
That Starfox project used plenty of cheating techniques to simulate 3D and get around limitations, though, so it might not be 100% 3D (although I think if you modify the source it's perfectly useable for games and levels)

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #7 on: March 03, 2013, 06:33:50 am »
Thanks :D I first thought about a Star Fox like or something ...
* Matrefeytontias dreams about nice things
There is already a StarFox project by thepenguin77, but it only runs for 15MHz models, so not for your 83+.

Will the Axiom support solid walls (even if they are only white, with no textures) or only wires ?

This project is by long discontinued. Also yeah, I forgot to mention that the programs on the screenshot all runs at 6 MHz ;)

And yeah, solid surfaces are my next item on my list. That's why I mentionned polygon filling.

And thanks DJ_O :)

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #8 on: March 03, 2013, 06:36:34 am »
And yeah, solid surfaces are my next item on my list. That's why I mentionned polygon filling.
Ah, that's what you meant by "polygon filling" :P
That's great to hear anyway :D
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #9 on: March 03, 2013, 06:49:34 am »
Matrefeytontias: This is amazing o.o It works so smoothly! I had just finally figured out 3D stuff yesterday, so I made a BASIC program, but this is gorgeous o.o I am now looking forward to the upcoming TI-Concours stuff in Axe/Assembly O.O If we do Snake or something, are you going to make it 3D? XD

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #10 on: March 03, 2013, 07:01:16 am »
Unfortunately, I don't think I'll participate to the contest, mostly because the family didn't like my grades during the first trimester. Dunno why ;D

But after the polygon filling is done, I think I'll start with a terrain generator, so you'll can walk on it :)

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #11 on: March 03, 2013, 07:32:17 am »
So this is the secret project you've been going on about. ;D Pretty cool stuff! ^^

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #12 on: March 03, 2013, 07:49:37 am »
Yeah that's it, and thanks :)

Also, if you cant think of more things that you would like have added to the axiom, say it ;)

Offline pimathbrainiac

  • Occasionally I make projects
  • Members
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1731
  • Rating: +136/-23
  • dagaem
    • View Profile
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #13 on: March 03, 2013, 01:26:51 pm »
So this is what you were keeping secret from us...

* pimathbrainiac downloads to try it out.
I am Bach.

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: [Axiom] AxeJH3D, a(n almost) complete axiom for 3D development !
« Reply #14 on: March 03, 2013, 02:12:22 pm »
Yes this is. Will you forgive me ? :P