Using Away3d in 2023

is it still alright to use away3d in 2023 as its been quite some time since it was updated and is it compatible with todays hardware ?

Alan continues to use Away3D on a comercial project that he talked about some years ago, but still uses away.

It has been used on PI 4

Away3D haxe version I believe uses OpenFL’s Stage3D which I think normally relys on OpenGL / WebGL, so that is still pretty much anywhere. OpenFL is still actively developed and OpenFL’s Stage3D is also used by Feathers, so largely Away3D haxe version is decoupled and relys on OpenFL Stage3D, font, bitmap etc… and does not directly care so much - if OpenFL/Lime tries now or in the future to use Metal or something else underneath. So it is very compatible with modern hardware but will not take advantage of all graphics cards to the same level as say something like unreal might, and with ios you may find the metal support is not there yet so apple may well mess you up in the future.

1 Like

To clarify not used away3d really since as3. But have fiddled with GL in haxe can try to explain my minimal understanding of away3d abstraction.

you can see for instance here some of the geometry buffers being setup in away3d with the context and stage3d in classes like:

so it uses a texture which kind of uses a bitmap on the geom. For instance see bitmap texture here

Then you can see the renderer for instance see this one here

So largely away3d is using stage3d abstraction to manage setting up a GL context, buffers, textures, etc… to pass to the shaders.

Really if you look at lubos kha tutorials for kha based on opengl you get a low level explaination for what sort of stuff stage3d is also kind of doing.
So away3d is not really working with WebGL or OpenGL it is working with the flash style software renderer in openfl and the stage3d renderer a GL wrapper. So it partially does not actually completely care on all hardware detail, so much like Starling library renders Quads though stage3d. How stage3d works is somewhat dislocated.

So for faster 3D you can perhaps use Lime and webGL2 api ( covers opengl as well, forget the class names ) but then you have to manage the mess of dealing with attaching and disconnecting buffers, textures, attributes, mipmaps and all that mess.

Away3D → Stage3D context / Bitmaps / fonts / enterframe → WebGL/OpenGL ( metal…? )

Thanks for the shoutout @nanjizal
Yes I’m using Away3D successfully for that project and would still choose it for my current needs—mainly that it integrates with other OpenFL libaries such as FeathersUI nicely. If you are ever wanting augmented reality out of the box it may be better to use a library which supports GLTF format out of the box, such as Babylon3D. I am using GLTFTools library with Away3D for generating GLTF models.

1 Like

i see , i thank both of you for the clear explanation and @Confidant does the hashlink or neko builds work on your side because the only builds working are html5 and electron

@TravelerofTheNight Sorry for the late reply—I was on vacation. Yes I am able to build for Hashlink. I haven’t tried Neko. I’m on Mac M1, using Haxe 4.1.5 for that.

My Hashlink is rather unique in that it is running on the server (including Away3d) and it uses no window. I have not actually tried viewing the Away3D rendering in Hashlink.

Looks like @watabou is also using Away3D: City Viewer by watabou