The shoutbox is currently out of service. Join us on Discord instead.

[gLib][3d][z80][ez80] gLib a fast 3D asm/axiom library

Started by TheMachine02, January 19, 2015, 05:10:01 pm

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Snektron

Legends say if you spam more than DJ Omnimaga, you will become a walrus...


DJ Omnimaga

Sorry to see you won't be around for the Summer, but if you can manage to see this before leaving, that last screenshot looks amazing. :D That slow frame rate means you need to remove some polygons or effects, though :P

TheMachine02

I leave tommorrow actually (yeah, I won one days with internet  :P )

I've fixed the color :



And yeah, this is definitly the max the engine can support. Anyway, this model is about 55K (1841 vertices / 3485 polygons) , so it is pretty much amazing the amount of works the ez80 can do before surrending :p According to my timers, this thing run at about ~3-4 fps. But blame z-sorting, this is what crash performance <_<

EDIT : I just though of a way to make sorting way faster. Maybe this will works or not, dunno, I will try (but you won't  most likely see the results before my return :p)

DJ Omnimaga

That looks better, although there's a white spot on her. :P By 55K do you mean it's 55 KB large?

Hopefully you can get some public wi-fi access during your absence :)

TheMachine02

Yeah, it is 55Kb large  :P. In an appv hopefully, but still. The white spot is actually is the model and is correct, altough I agree, it look a bit strange. And yeah, will see if I will have wifi  <_<

DJ Omnimaga

Lol, that's like 30% of the RAM O.O.

Ti64CLi++

Good.  ;)
It is possible to create an glib, but with an ide on-calc like mimas for ti 84+?
Administrateur de Tout 82
Sur TI Planet depuis Août 2014, rédacteur depuis Août 2015Donnez moi un Internet : c'est gratuit et ne prends pas beaucoup de tempsAdministrateur de Life Game World

DJ Omnimaga

There is no on-calc ASM editor for the TI-84 Plus CE sadly. Or do you mean like a new language with both gLib and an on-calc editor built-in?

Also welcome to CodeWalrus @neuronix :3=

Ti64CLi++

@DJ Omnimaga thank you.
Is it possible to change my nickname to Ti64CLi++?
Administrateur de Tout 82
Sur TI Planet depuis Août 2014, rédacteur depuis Août 2015Donnez moi un Internet : c'est gratuit et ne prends pas beaucoup de tempsAdministrateur de Life Game World

DJ Omnimaga

I didn't know you were Ti64CLi++ until now. I thought you were two different person on TI-Planet. O.O

But I guess it would be a good move to avoid confusion on Planète-Casio, because Planète-Casio founder had the exact same nickname as you in 2005. :P But for a nick change you need to poke @Streetwalrus @aeTIos or @Juju

TheMachine02

-Activity report-10/07

First thing I've implemented is proper sorting (with the almost definitive algorithm), with a constant speed. That is, no more penality due to spacial locality if the list isn't almost sorted. It is slower than insertion sort for a static frame, but who want static things anyway ?
Performance wise, it is quite good. Less than 4,000,000 TStates for almost 3500 triangles. With a constant speed, it is even better than z-buffer :P It consume quite some memory, but I can use the framebuffer since the sorting occurs before the drawing and the clear.

Comparaison for lara model (3490 triangles,2566 vertices) (and yeah, it is an updated model) :

Insertion :                            New way :


Next stuff, I've updated a bit my model converter. New screeny :
-Dragon model:

-Low poly chocobo:

-New lara model:

I've also toyed a bit with FSAA (ie, full screen anti aliasing), using an internal render resolution of 320x240 downscaled to 160x120. Meh, 320x240 look better :P (Anyway, primary goal of this routine was to test my color blending routine, so it is good. And it allow great looking 160x120 screen)



Fullscreen:


Continuing with the antialiasing, I am currently seing if I can't implement it at low cost. It really look too good:



And some new renders :




And when I tell you FSAA give great 160x120 screen (for forum pic for example)


Screeny update the model by 30° rotation each frame.

Some bugs have been corrected, as always.

What is being currently implemented :
-cliping. I hate this, but I guess you knew it already :P
-some cool stuff, like quaternion slerp, more helper functions
-some high level routine for model handling
-some secret things obviously :walrii:

Seeing performance result, I wonder what will be possible with this library. Much more than with z80 obviously and colors help a lot too. About the compiled size, I am reaching 5K, but there is lot of useless code and cleaning will be necessary I guess. (Blame the sorting code, it is 453 bytes)

Also, it doesn't exist mimas compatible code of gLib, however, the axiom version 4.0.0 could be used as a base for an asm lib on mimas. There would be quite a lot of writing though, and you'll need to know basis of 3D to get something working. Can be done though, the source is on github is you want to see it. (don't take the 3.0.0 version, it is totally deprecated :P)

Anyway, I have failed one of my exams, so it is kinda paused for the moment

-EOF-

DJ Omnimaga

Sorry to hear about the failed exams D:. Nice to see progress, though. Those nee screenshots look amazing! :)

ben_g

Quote from: TheMachine02 on July 12, 2016, 02:47:09 pm

You managed to render a lit 3500 triangle model at that speed? This lib is getting really amazing.

DJ Omnimaga

Yeah, I can definitively see this used in a game with less details.


Powered by EzPortal