3ds2vxl version 0.3
 
 
WARNING!!!!!!

Always save anything you're working on before you run my program in case my program crashes and forces you to restart your computer without giving you the chance to save anything. This is just standard common-sense practice when running any programs especially amateur ones.

Request to webmasters:

Please do not put my program on your websites; only link to it. I have put it on my site where it is now very easy to get to so there is no need to copy it to your sites. I want to make sure no old versions of my program are out there because I don't like people seeing the bugs in my program because it is bad publicity. Every release is better than the previous, don't hold onto old versions; either get the new version and overwrite or delete the old version entirely.

Instructions for getting working turrets:

The program can seperate the turret and barrel automatically if you write the words "barrel" and "turret" without quotes each into the name of one object and the objects are linked to each other properly; the turret must be linked to the body and the barrel must be linked to the turret. Other parts can be linked to the body, turret, or barrel or parts linked to those things and which of the 3 is it's closest ancestor in the hierarchy tree of links should determine which of the 3 vxls the part will be included with. In future versions the turret offset amount will be stated to you by my program and you must type it into the game's ini file yourself.

Viewer's keyboard controls:

The vehicle controls are now similar to a first person shooter. The controls were changed from previous versions of 3ds2vxl. You can rotate or slide on any axis using thrusters. I've also added fin control though. I'd prefer to not go into detail labeling each key one by one and just generalize because I think this is more convenient for everyone actually.

certain arrow keys control your rotation thrusters.

WSADC and SPACEBAR activate your translational thrusters.

The clump of keys UIOJKL are used for the control fins.

The keys next to the enter key are used to guide the camera. You've got zoom, closer/farther, circle horizontally and circle vertically controls.

The nearby insert delete  keys are used to switch the reference ellipsoids on and off.

the + - keys make the viewsize bigger or smaller.

The F# keys are for the switch view keys. So far there is only 2 views. F1 and F2 . Inside and outside craft.

Enter  is to render a full screen image.

Esc to quit.

Known Bugs or Shortcomings:

Certain screen resolutions seem to not work if the desktop is set to a lower resolution.

Sometimes the screen will flash wildly because a blank window opens up in a frame buffer. All I can suggest is that you either quit the program or just press the enter key when this happens to draw over it. Do not leave it! If you leave it flashing, I believe it can be bad for your monitor and your eyes, and especially dangerous to epileptics.

Sometimes the converter opens behind the front-end and other programs instead of in front of them. I'd appreciate info on how to fix this. Several people have already refused to tell me how to fix this.

The viewer's movement may appear to hitch because the timer gives erratic numbers occasionally. I don't understand this myself but rebooting helps. Running certain programs before my program causes the problem but running other programs fixes it again. Also quitting my program and then running it a second time seems to help.

Some triangles appear black and render very slowly or don't appear at all or look weird and staticy. I found 4 causes for this phenomenon. I fixed 3 but I'm still considering how to deal with one of the causes. This cause that I'm pondering about is related to texture mapping coordinates. A temporary solution is not to use the coordinates at all because if they cut out a point or a line instead of a triangle for each face from the bitmap then the problem happens. Another way of saying this is that you cannot have textures that stretch to infinity on any faces in my 3d engine. This is the downside to an optimization I developed that reduces the memory and processor usage. I've added code to test when texture map coordinates will cause an error in my program. It works sometimes. When it works, the offending face should look fine except for the texture which will be misaligned. I don't really feel bad about having this texture limitation in my 3d engine because in my opinion a professional 3d artist should never allow the texture maps to be stretched on faces in that way anyway. These bugs are mainly caused by divide by zero or near divide by zero instances.

Inverted normals: Some models will have some parts where the normals are all facing the opposite of the correct way while some all face the correct way. If they are all incorrect then this can be remedied by changing the flip and swap checkboxes in the front-end, but if some normals are correct while some others are incorrect then there's nothing you can do. I'm not sure what causes this but I suspect it's not a fault with my program but a fault with the program that output the 3ds file itself. I suspect that these messed up models were originally lightwave or other model formats which were then converted to 3ds with buggy converters. Flyby has seconded this opinion.

Mesh misplacement error: Some models have meshes that appear completely flipped or shifted from their correct positions. Below in the next section is some advice given to me by a couple of people to pass on to users about how to avoid this problem. Early tests indicate that highlighting everything in the scene and clicking on 'reset pivot' avoids the problem of shifted meshes. It seems if you move pivot points independantly of meshes then the problem happens. If you have done this already then simply reset all the pivots as I just stated and then to put the pivot point where you want, just move the entire mesh over and then move all the vertices of the mesh in the opposite direction. The other similar problem of flipped meshes occurs when meshes are mirrored. In order to avoid this either use the symettry modifier instead of mirrored instances or attach the mirrored instance to the original mesh.

Smoothing errors: 3D Studio Max users have told me that 3DS models have numerous smoothing errors when converted from other model formats including MAX. nobody knows why this happens really. By smoothing errors I mean some triangles that should be smoothed with others around them are not and some that shouldn't be smoothed are smoothed. This problem should now be fixed actually. most of these errors were caused by textures seams. Because 3ds vertices can have only one UV coordinate 3ds will split vertices into 2 if there needs to be 2 uv coordinates at that vertice. This will cause the smoothing to stop at that point. 3ds2vxl now searches for these coincident vertices (vertices in the same exact place as others) and it recombines them smoothing-wise at least. the downside to this is that if you try to make a smoothing break by manually splitting the vertices yourself 3ds2vxl will think this split is unintentional and will rejoin them. You must use smoothing groups to create the smoothing breaks instead. By activating the join duplicate vertices option the 3ds models will look more like the max models that they came from, and by leaving the option off the 3ds models will look more like how a 3ds looks when it is loaded back into 3dsmax.

Multi-Sectioning: 3ds2vxl does not seperate models into sections yet, it can seperate the turret and barrel however as explained in a section above. If you want animated voxels, you have to cut-up the voxels yourself in a voxel editor at the moment. This might be changed soon. Alon Tzarafi, mentioned in the credits below, uses a techique where he saves 3ds models multiple times but with all sections deleted except for one section each time. When he does this he has to at least put some unused vertices at the former extremities of the whole model so that the resolutions and sizes of the voxel sections can match up later. This is because 3ds2vxl looks at the furthest front, back, left, right, top, bottom vertices to determine how far apart voxelization slices will be.

Glossiness simulation is somewhat crude and is still being worked on.

Reflections and shadowing are not adequately simulated which can result in weird visual effects.

If your frame rate drops too low the physics calculations may go haywire with extreme numbers and crash the program. I've put a makeshift fix for this which will force the sim to go into slow motion at low frame rates and this should reduce program crashing. As usual, the faster your computer, the less you have to worry.

There is no collision detection in the flight sim yet.

Lights cannot be seen directly, but only via reflections and illumination on other surfaces. This is because I'm waiting till I learn how to do hardware page flipping, because I want to draw the light halos on top of the finished image and not let you see the image before the halo is applied otherwise the halos will appear to flicker.

The vxl output is rather fast even though the conversion from truecolor to 8bit fixed palette is slow but that shouldn't bother you. However the viewer is extremely slow and that's why the viewsize has to be tiny. 3d accelerated graphics will be added in future versions.

A lot of ram is required. If you have only 64MB of ram you will notice that you have problems loading models with more than 50,000 faces. I've already reduced the memory usage of the faces significantly however there may be few other things I can do but I'm waiting till I figure out what the best approach is. Please note that this 3d engine is the first I've ever done, all written by me without any help on the mathematics and it attempts to do more than most other software 3d game engine or even hardware so far.

Ellipsoids will not render correctly if they go partially behind the camera to the right side.

There is no mip-mapping of bitmaps in my program yet. This is particularly needed for the texturing on the voxels since they are usually so low-res while the textures are high-res. For now, you can recreate the effect of mip-mapping somewhat by resampling each texture to a lower size in a paint program.

Various texture problems follow:

Colors and texture mapping on 3ds models is slightly incorrect. This is because the file format has many bizarre options and is not fully documented. It would help me if I had a copy of 3d studio myself. You can help me if you have it, by telling me how things look in my program compared to 3d studio. The bump maps may be either too flat or too rough. There seems to be contradictions about what variable controls this in the 3ds file. If the bump map is too rough, it looks very fake and ugly. I actually know now why most of these differences occur but I actually prefer the way 3ds2vxl does certain things.

Certain features of texture mapping are not supported in my program. Vertices cannot have multiple UV coordinates so multiple mapping channels is not posible. This is because my program is designed to accept only 3ds models and this is a limitation of 3ds models. I believe Lightwave and MAX models do not have this limitation. Also there are features supported by 3ds models that are not supported in my program such as: overall final rotation, scaling, and shift of textures. Also my program doesn't support all the types of textures; my program only supports one diffuse, one specular, one bump map, one gloss map and no mask maps per material. In my opinion the features I don't support are so rarely used it's not worth bothering with them. 

Textures file names should be only 8 letters long but if they are not then they can still load but the wrong ones may be picked coz the 3DS files store the names of textures with only 8 letters because the format was invented in the days of DOS.

All textures must be either 24bit uncompressed BMP or TGA format for now. If they are not, you must convert them to one of these two, your choice. I'm sorry about this but other formats I either can't understand or refuse to learn because I see them as obsolete.

The textures have to be in the same folder as the 3ds file to work.

Mesh misplacement avoidance:

A couple of guys, mentioned in the credits below, have tips for Max users on how to alter Max models so that when saved as 3ds files they avoid this problem in my program mentioned above. I personally don't understand it but Max users should understand it. Here is the advice in their own words:

Advice by Alon Tzarafi:

you make a primitive(box) and convert it to "editable mesh",
you press "attach" and click on the "infected" mesh(this will collapse the
object, giving up modifier stack).
using element sub object mode, you select and delete the former box and get
left with the now fixed mesh but inheriting the box'es pivot, you can easily
move it back now.
repeat for each bad/flipping object or attach 'em all at once and detach
them one by one,
either way is good, now you can export("export selected" is extreamly useful
for turret/body and with/without spawns exports)

 

Advice by Flyby:

1) Mirroring in 3dsmax
You need to be very careful using the correct mirroring tool. Although it is very convenient, the old (and most visible) mirroring tool has the nasty habit of not always working correctly. This is because it doesn't actually flip the data of the mesh, but the envelope of the mesh. This can result in errors when converting or using it as a bones structure!!!
This is why Discreet came up with the mirror modifier. This actually mirrors the vertices coords and should work in every condition!!

2) Using *.3ds models
A lot of the freeware 3ds models you can find on the net are originally made in other programs, like Lightwave or truespace, etc..
Depending on the correct implementation of their converter tools, these models may appear as if all parts are exploded. This is mainly due to incorrect data conversion. Nothing will solve the problem. Other problems could be missing polygons or partially flipped polygons. Selecting all polygons in sub-object mode and forcing a "unify" several times might solve this. If not, try selecting the polygon groups that have the same orientation and detach them into a new mesh. flip them then and reattach them to the first object...

3) Preparing for export
I can't repeat it enough: ALWAYS collapse your stack if you're planning to export your models...This is the only good way to have a native polygon objects.

4) Checking integrity of meshes
You can check the integrity of your final mesh by using the STL-check modifier. This is a must when using repeated Booleans for example, as those often produce errors on complex meshes...

 

Internet sites for art to test in 3ds2vxl:

A good place to get skyboxes (cube environment maps) also known as 360 degree wraparound panoramic images is:
http://www.planethalflife.com/wadfather/

To get 3ds models (please note that not all files are in 3ds format and may have errors because of bad file converters or unsupported features in my program):
http://www.3dcafe.com/asp/default.asp various models
http://www.swma.net/  Only Star Wars models. This site is dead at the moment and I'm really disappointed because I got good stuff from here.
http://www.theforce.net/scifi3d/ Star Wars mainly. Many models from there seem to have the mesh misplacement problem mentioned in the bugs section above.
http://www.scifi-meshes.com/ Mostly Star Trek and Star Wars and mostly in MAX format.
http://go.to/3Dmania Various. Seems to have gone dead unfortunately.
http://www.3dtotal.com Various.
http://www.planit3d.com/source/index.htm Various.

Hardware usage and requirements:

This program requires that you have capability for truecolor display in 640*480 resolution in 32bit color, in order to use the viewer.

I would say you need at least 128MB in order to not see loading problems with all models known to me.

The keyboard, joystick, and mouse should work.

Time calibration is there so on different computers, animations should occur at the same time although the faster the computer the smoother the animation.

There's no sound.

Only generic instructions are used. No MMX or SSE1 or SSE2 or 3D NOW etc. is explicitly used.

No 3d acceleration is used.

No communication between computers is used.

Software used to make program:

This program is now a Windows executable compiled with MSVC++.NET C and C++ are used but not Assembly. The latest DirectX version is used.

Previous versions were compiled with DJGPP (a free c/c++ compiler) as a DOS 32bit executable. Only C was used; no C++ or Assembly. Allegro was not used.

Technical Support:

If you have any questions or suggestions about this program then I'd prefer you use Sleipnir's forum http://www.sleipnirstuff.com/forum/

Credits (these are people who contributed to the creation of 3ds2vxl) :

Various people have taught me various things about the C and C++ languages and about operating system or hardware related code. They are too numerous to mention.


Virtual Prophet or ViPr
Don Nasri Karam
vi_pr@hotmail.com
http://www.geocities.com/vi_pr/test.htm
I made 3ds2vxl.exe

DMZ
dmz@adjective-army.com
http://www.alfar.demon.co.uk/
Figured out everything about the vxl format that we know today, and made an hva editor that I used for testing voxels.

The Profound Eol
Sigbjørn Lund Olsen
Eol@mojosys.com
http://www.mojosys.org/
Helped the guy above, I don't know exactly how though.

bglman
Figured out how the normals work in the VXL files. This was one of the hardest most elusive parts of the format to understand and was one of the last things to be figured out.

stucuk
stuc_uk_2000@hotmail.com
CnC-Source
made the second front end for my program after I was unable to understand how to edit Olaf's front end.

Haydn
Haydn Sutton 
haydnsutton@hotmail.com
http://abscnc.sourceforge.net/haydn/
Figured out what colors not to use from the VXL's palette.

Will Sutton
Made Will's Voxel Editor or Voxel Section Editor that I used for testing voxels.

Olaf van der Spek
XCC@XCC.TMFWeb.NL
http://xccu.sourceforge.net 
Made a viewer that I used for testing voxels, and taught me the vxl format, and made the first front end for my program, and gave me programming help of the kind mentioned above.

Alon Tzarafi
shelalon@internet-zahav.net
Has access to 3d Studio Max so he's been helping me track down bugs in my program among other things by comparing models in Max versus my viewer and explaining to me what certain technical terms used by 3d Studio Max really mean, and by sending me simple test models.

Flyby
Another person that has access to 3d Studio Max and gives us all advice, explains 3d Studio Max terms to us, and makes 3D Studio Max scripts for mod makers to use, including a voxelizer.

Bloodnok
Geoff Thornburrow
You can find him with a chat program in the coders channel in Undernet.
He's the main guy responsible for helping me convert my DOS program to the Windows system.

The programs involved in voxel making as well as some other programs for the C&C editing community are:

Olaf van der Spek 's XCC utilities which allows voxel editing but is relatively difficult to use for this purpose since Olaf decided to concentrate on other aspects of his program to let other people take over making programs specifically for editing voxels.

Will Sutton 's Voxel Editor which was lost when movers lost his computer so he made a second version, which is referred to as voxel editor 2 or VXLSE (voxel section editor). He released the source so it would never be lost again but then he lost interest and let Plasmadroid modify it and then Koen after that. This program allows voxel creation from scratch and is better than Olaf's program because it has rotatable views.

DMZ 's vxlutil which is used to resize voxels and his HVA Editor which is used to create animations for voxels.

ViPr 's 3ds2vxl which allows voxel generation from 3ds files.

Flyby 's voxelizer plug-in for GMAX and 3D Studio MAX. This is a new program that is not currently as functional as 3ds2vxl but it has the potential to replace 3ds2vxl because it doesn't have to deal with lack of information about 3d file formats since it uses a completely different approach.

stucuk has made several programs for the C&C editing community here is the list in his own words:
Open Source : Voxel viewer
Open Source : HVA Builder (in the makings)
Open Source : SHP Builder (well me and Banshee i made the first ever version, he is theonly one working on it now)
Open Source : SHP Viewer
Open Source : Palette Editor (first ver by me, banshee added to it)
Stu's Mod Manager v4.0 (TS Only)
MSCG ( turns one lot of ts map types into another n edits some file..... u can tell i remember it well, basicaly im told its ment to speed up loading times for TS)
I made a thing that made maps smaller by removing a section that isn't always used.
I took over the VXLSE project a while back (Koen n Plasma are unlikly to do anything towards it, and will doesn't seem like he will).

Where to find voxels (whether made with 3ds2vxl or not and whether from their own models or not):

Some people do not use 3ds2vxl; they work very hard making voxels block by block in a voxel editor. I want to make sure that people understand how much hard work they put in and don't dismiss their work as easy just because 3ds2vxl is out there for them to use. If you are a voxel artist and you are not listed below then send me your info so I can add you. No tricks! I don't want to see people claiming they created voxels block by block over several months when all they did was download a free model from the internet and voxelize it with 3ds2vxl in a matter of seconds. This is totally unfair to people who actually do the work!

Artists making voxels:

Weeraby2k
sonic2002uk@hotmail.com
http://rescen.editingsource.com
ICQ:154697159
Uses 3ds2vxl with his own and other people's models. Uses 3d studio max 5 to create models(some based in real life) and he is up for requests.

Haydn
Haydn Sutton
haydnsutton@hotmail.com
http://abscnc.sourceforge.net/haydn/index.html
"All models completely hand made using (more often than not): Will's Original Editor But with quite a few using: Keon's (formerly Will's then Plasmadroid's) VxlEditorII (v.1.4) Have to give credit to DMZ's VxlUtil(not that I am any good with that) and his excellent HVA editor." So he never used 3ds2vxl.

Lao Tze
http://www.laotze.cjb.net/
Made some voxels the hard way but now uses 3ds2vxl.

VPR
eubd@hotmail.com
http://www.ts-ultimatewar.com/
Did not use 3ds2vxl.

Godwin
Godwin Koay
godwin_koay@hotmail.com
http://ar2.ra2source.com/
Never used 3ds2vxl; he makes voxels the hard way; block-by-block. He uses Will's Vxl Editor 1 and VXLSE. Makes voxels for the RA2 mod Allies Revenge 2 and also for general release.

Strategic Commander
Clif Kerr
strategiccommander@ignmail.com
http://voxels.ra2mods.com
http://abscnc.sourceforge.net/haydn/index.html
http://www.tiberiansunfactory.com/
Used various versions of the Voxel Editor. Only used 3ds2vxl lately and doesn't want everyone to think all his voxels are from 3ds2vxl.

Aliases: Blade, The Omniscient Blade
Name:*Not Released* (give me an edge of mystery ;)
E-mail: Blade@mysanctuary.demon.co.uk
ICQ: 27537648
Web Site (for voxels and other TS/RA2 work): http://www.mysanctuary.demon.co.uk/
(also has a mirror page on http://www.eclipsemods.com/)
"Tools used for voxels: PSP v4.14, XCC mixer, Will's vxleditor (first one), DMZ's vxlutil and HVAedit
Collaborators: "Strategic Commander" Did normals for ecranoplane and scout trimaran voxels, "DMZ" did .hva for the multisectioned hind, Westwood made original hind voxel that I chopped up so it could animate."

Raminator
Ramón Hebestreit
raminator@web.de
http://blitzkrieg.westwoodx.com
Head voxel editor of the ra2 mod Blitzkrieg. He did not use 3ds2vxl.

Nickname: Dood3
Real Name: Rhodri Williams
AIM: Dood3000
E-mail: dood3@noos.fr
Site:  http://www.angelfire.com/games3/ramods
"It's not up yet, though as I haven't time recently to do anything. I'll do a quick one just now, just with my voxels.
I haven't made many voxels yet, but I'm open to any requests (if they are doable)."

Psychosis
Real Name: Albert Yao
albert_yao@hotmail.com
http://voxels.ra2mods.com
http://voxels.federationstudios.net/
"Makes voxels for the community and Real Combat. I do not use 3ds2vxl (all made from scratch), autonormals suck, and I am webmaster of the Voxel Warehouse, which has around 70 voxels up-"
He uses Will's Voxel Editor and Vxl Section Editor II.

Exerface
Park Hyun-Seok
exerface@hotmail.com
http://myhome.hananet.net/~exerface/
Used 3ds2vxl and then a voxel editor to change the colours but not the normals. He used other people's free models.

Nighthawk
nighthawk@extreme-soft.net
http://www.extreme-soft.net/
Uses 3ds2vxl and does not use a voxel editor. He voxelizes his own and other people's models. His own models are built in Lightwave. So far none of his own models are original as they are built according to blueprints from real life or from concept sketches from Yuri's Revenge. He colorizes other people's models in Lightwave prior to voxelization. He uses a program called 3d exploration to convert between lightwave and 3ds file formats.

Shreik
Greg
Zwarrior_420@yahoo.com
icq: 46365868
Programs used: will's vxl editor, vxl section editor, & DMZ's hva editor

Overlord
Over6I0rd@aol.com
Used 3ds2vxl but in future will use gmax to make 3d models which requires him to voxelize with Flyby's voxelizer plug-in instead.

Comrade G€N Arkan
jol_aka_dk@hotmail.com
http://www.shpws.cjb.net
Does not use 3ds2vxl.

Renagade101
Name- Matt Petersen
E-mail Renagade101@hotmail.com
Skill level-6(out of 10)
Public works-Not yet
Requests-Yes, but not ALL requests, and only if they have concept art
Other-Ini edits, cameos, loves long walks on the beach. :P
This guy uses 3ds2vxl. Those are his words above, not mine.

Gamemate
Bo Persson
bossemannen@yahoo.se
Uses Voxel editor1 and Voxel section editor.

T34 Sam
E-mail : t34sam@aol.com
MSN : t34rollson@hotmail.com
http://www.ra2div.cjb.net
Tools : Voxel editor 1, Voxel Editor 2
Type: Hand Maker

Zoop
E-mail : Zoop1984@hotmail.com
Tools : Voxel editor 1, Voxel Editor 2
Type: Hand Maker
"last year, i made a crapass voxel, so i'm a voxelartist"

ME2
E-Mail: me2again2@yahoo.com
Tools: VXLEd 1, VXLSE
Type: Hand Made Vxl Artist

YRDestiny
Email: yrdestinyuk@hotmail.com
Program: Voxel Editor 2
Type: Handmade(and darn proud of it to!!!)

Darigaaz
Email: darkfcon@hotmail.com
Program: VXLE1,VXLSE
Type: hand made?