Hello, I have been working on this ported code for 2 months. this is version 1, with only enough active menu's to re-create the cover of the book.
the original book is called "Amiga 3D Graphic Programming in BASIC" published in 1989.
i purchased the book in 1990 when i owned an Amiga 500. i never got around to coding the book back then, but over the last several years i have studied up on 3D, so thought i would give it a try.
well, success. i got the ray tracing up and running, the main scene (with default objects to re-create book cover) working, and the editor is active enough to see the objects from the main scene.
i will get the editor and main scene running more complete in version 2. i did notice it will be a learning curve to use this program, because of the way it is set up...
to port the code took time because i needed to use another 5 books for reference to know the commands and libraries etc in this 3D book.
the other books i referenced are:
> AmigaBASIC Inside and Out
> Amiga Graphics Inside & Out
> AMIGA ROM KERNAL REFERENCE MANUAL: Libraries & Devices
> AMIGA ROM KERNAL REFERENCE MANUAL: Includes & Autodocs
> Amiga Machine Language
i am sure glad i had all these books from the old fashioned days.
also the book had obsolete sections of code that are not relevant to modern day computers.
to get some scope of old computers vs new computers, the book said to allow up to 3 days to render if using full res (640 * 400) or 1 day at half res. well... my computer rendered at 1600 * 960 and took 22 seconds, lol.
NOTE: to look at the 'editor' to see the scene objects in it, select it from the drop down menu : Editor > Start Editor.
Building a Basic 3D Engine (in PlayBasic) by Stevmjon
Here's some videos showing Steve's progress of building a 3D software rendering engine in PlayBasic. If you follow the thread (link bellow) he started with humble wire frame beginnings, all the way through to perspectively correct textured map engine with sliding collision. No mean feet !!
Here's some example source codes that have been releases this week, including a revision of Scotties Voxel Terrain as well as an 'as is' version of the Play3D libraries.
This a updated capture of the PS3D demo, only difference is this version is running in PlayBasic V1.65C and object count is bumped up.. It's all software rendering of course, affine texture mapping, so think PlayStation One style scene..
Those reading the PlayBasic development blogs on our forums, would no doubt recall the mention of the wanting to combine the various software 3D rendering routines into a bit of 3D library for PlayBasic V1.64 users. The objective of the library, is to allow the users to create 3D scenes quickly and easily. However, given this is software rendering (affine / with no perspective correction or Z buffering), the purpose of the library is not to create 3d games with, more to augment your existing 2D applications with some 3D effects.
This is a video of version V0.01 of library, which at that point only supported textured terrain and simple cube objects. More recent editions of the library support loading Animated MD2 objects which can be seen in the screen shots bellow.
As you can see even though the library is using software 3d, you'll still be able to have some fun with it, and more importantly start learning about 3D programming.
ColdSteel Wrapper For PlayBasic released - Add 3D support to PlayBasic
Today we've released an extension library for the Cold Steel 3D engine, allowing PlayBasic users to explore the world of 3D programming today.
ColdSteel is one of the most advanced 3D engines available on the market. With support for the latest technologies, it is specially suited for any software which requires the representation of virtual worlds in real time, such as games, tech demos, military simulators or architectural visualizations.
ColdSteel Features
Windows 98/ME/2K/XP platforms.
All functions documented.
Supports packed media
File system with support for reading data inside compressed packages.
Integrated XML parser and writer.
Fast 3D math functions, for handling vectors and matrices.
Fast collision detection and response.
True 3D audio.
Support for the TCP and UDP networking protocols.
Client/server architecture.
High performance rendering through Direct3D9.
Indoor and outdoor scene management.
Bone and vertex based character animation.
Billboards.
Light maps.
Dynamic lights.
Alpha-blending.
Environment mapping.
Custom bitmap fonts.
Supports multiple model formats: b3d, md2, ms3d, x.