![]() |
![]() |
#1 |
Registered User
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,456
|
PolyNova3D - Software rendering a go-go
A very long time ago (30 years), I was into 3D coding and even created my own 3D engines based on a DOS 3D engine called AST 3D
I actually started off building simple 3D Dungeon Master style engines using QBasic before graduating to C++ and DirectX. Some of my later engines were even used to produce game demos which is pretty cool ![]() Anyway, I was very bored recently and thought I might try and port an older version of my engine (PolyNova3D) over to Amiga 68k. I believe the newer versions of polyNova are too heavy for software rendering. I've still got some of my old engine's source code on floppy discs but it was all over the place and its taken me a long time to get something basically working on 68k. I was having trouble rendering the triangles properly as my old engine used DirectX. This led me to looking into 68k OpenGL and Mesa. I then decided to port a newer version of Storm Mesa over to 68k (pure software, no hardware acceleration) and then add Mesa OpenGL to SDL. Read all about it here -> Mesa OpenGL I've also spent ages trying to get the collision detection working as I've forgotten a lot of this 3D stuff and can't read my own code ![]() Anyway, I've attached the first demo worth releasing, it's still very very alpha ![]() Keys are: w = forward s = backwards cursor left/right to rotate cursor up/down to look up and down escape to quit It will be very slow (needs optimizing), only 16bit fullscreen 320*240 mode currently supported. Only PiStorm/WinUAE will be fast enough to run this engine. My basic todo list:
The scene is loaded from a level file, you can open it in a txt editor to see how it works. My plan is to release a fully working demo (with real-time lighting) to Aminet and github and then maybe I'll then use the engine to create a simple space shooter that I've been thinking about recently. Last edited by NovaCoder; 15 August 2024 at 00:13. |
![]() |
![]() |
#2 |
Registered User
Join Date: May 2020
Location: Figueira da Foz
Posts: 458
|
That's too much pink for a man to handle! xD
|
![]() |
![]() |
#3 |
Registered User
Join Date: Oct 2007
Location: ManCave, Canada
Posts: 1,676
|
![]()
Thanks for this NovaCoder
![]() |
![]() |
![]() |
#4 |
Registered User
Join Date: Dec 2011
Location: Dortmund, Germany
Posts: 1,059
|
Screenshots or a video would be nice
![]() |
![]() |
![]() |
#5 |
Registered User
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,456
|
|
![]() |
![]() |
#6 |
Also known as GarethQ
Join Date: May 2019
Location: Twickenham / U.K.
Posts: 748
|
This sounds exciting. I would love to see a present day supported 3D engine for our lovely machines.
|
![]() |
![]() |
#7 |
Registered User
Join Date: Oct 2007
Location: ManCave, Canada
Posts: 1,676
|
![]()
working nice and smooth on my PiStorm32-3A+
![]() |
![]() |
![]() |
#8 |
Registered User
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,456
|
Cool
![]() Like I said, it's very early days. I managed to get the OpenGL z-buffer working yesterday which is probably better than using my old software implementation (not that this particular scene even needs it due to the geometry layout but anyway, still nice to have). My next release will have the lighting enabled, hopefully won't take me too long to get my old code working. |
![]() |
![]() |
#9 |
Registered User
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,456
|
I've managed to implement 2 of the 3 light sources (ambient and direct), next up will be the point light sources (the pretty ones).
It has been much harder than I expect to get this working, I've forgotten so much of this stuff ![]() Anyway, in the attached scene every object surface color is pure white so all of the color comes from the lighting used. The global ambient light is set to half red and then a direct light set to green (which is pointing straight down). If you want to play around with the scene file yourself, be warned that there isn't currently any error checking so bad values will probably just crash it. Collision detection has been simplified in this release because I'm trying to get the lighting working first. |
![]() |
![]() |
#10 |
Retro Freak
Join Date: Nov 2001
Location: Slovenia
Age: 51
Posts: 1,706
|
|
![]() |
Currently Active Users Viewing This Thread: 3 (2 members and 1 guests) | |
Toni Wilen, tomcat666 |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Unstable bob rendering | damex | Coders. System | 2 | 22 August 2023 10:57 |
Batch Rendering with the Blitter? | Samurai_Crow | Coders. Asm / Hardware | 2 | 11 March 2019 20:49 |
octamed wav rendering | potato | request.Music | 5 | 25 November 2014 16:32 |
rendering under wb 1.3 | _ThEcRoW | request.Apps | 2 | 02 October 2005 17:23 |
Slow rendering of windows! please help! | devilstar | support.WinUAE | 3 | 14 June 2003 10:13 |
|
|