Vortex - Open Source 3D engine - v1.2 released!

Monkey Programming Forums/User Modules/Vortex - Open Source 3D engine - v1.2 released!

JaviCervera(Posted 2015) [#1]
Hello everyone!

I have been playing with OpenGL ES 2 on Monkey lately, and I have decided to release a small 3D engine I have written for you to use. It is distributed under the terms of the Zlib license, and you can find the project on Github:

https://github.com/JaviCervera/vortex

You should clone the repository onto <MonkeyFolder>/modules_ext, or download as a zip file and put the vortex folder on that same location. You should select Help -> Rebuild Help afterwards, and the documentation should be available in your modules help.

It is very simple, you can get a glimpse of what it does by checking the README on the Github page. If people is interested, I will improve it. Bug reports and pull requests are welcome.

Here is a link to the engine tests running in HTML5:

https://dl.dropboxusercontent.com/u/502828/vortex_tests/index.html

EDIT: I have released an update to my 3D graphics library for Monkey, Vortex. You can go straight to this release and download the binaries:

https://github.com/JaviCervera/vortex/releases/tag/v1.1

The list of changes:
- Now Vortex supports changing handedness. To do that, you can write this at the beginning of your program:

Import vortex.src.handedness
#VORTEX_HANDEDNESS=Mode

Where Mode can be one of:
VORTEX_LH: Left handed coordinate system (the default now)
VORTEX_RH_Y: Right handed coordinate system, with Y as up vector
VORTEX_RH_Z: Right handed coordinate system, with Z as up vector (the default in previous versions of Vortex)

Left handed system uses clockwise order for rotations and triangle winding, and maps textures from the top left to the bottom right.
Right handed systems use counter clockwise order for rotations and triangle winding, and maps textures from the bottom left to the top right.

- Possibility to switch the vertical axis of screen coordinates for 2D. Now the default is that Y increases downwards (opposite from previous versions). To select the screen coordinates mode, write this at the beginning of your program:

Import vortex.src.config
#VORTEX_SCREENCOORDS=Mode

Where Mode can be one of:
VORTEX_YDOWN: Y goes down (default)
VORTEX_YUP: Y goes up (the default in previous versions of Vortex)

- Added procedural API. Despite differences in implementation on the Object Oriented layer, the procedural API should offer the same functions as a future implementation of Vortex in C++

- Added Vortex_GetAPIVersion and Vortex_GetShadingVersion

- Support for JSON meshes and fonts replaced by XML versions

- Meshtool replaced by Irrlicht-based version

- Fonttool and meshtool are now build from a .bat file (requires TDM-GCC-32 on Windows)

- Removed animation sequences from the engine. Now animations are a simple linear of keyframes, and you decide the first and last frame for the animation. This helps keeping Vortex a bit simpler, and it is not hard to add sequence support on a higher level engine

- Several bug fixes


EDIT 2: New update! Here's the link to the release: https://github.com/JaviCervera/vortex/tree/v1.2

The list of changes:
I have separated the project into two different brances: vortex1 (the default) will have non-API breaking changes, while vortex2 will use a different API and much improved features. This release contains the last commmits I added to Vortex1, which do not add any big new features, but a few fixes and small improvements:

- Added fog support through the Viewer_SetFog function.
- Improved font spacing.
- Changed fonttool to export glyph data as properties in XML file (reduces file size of generated fonts).
- Export_shaders (the tool that generates the shader code constants from the glsl files) has been ported from BlitzMax to Monkey.
- Updated structure so a mesh has a linear array of bones instead of a tree (does not need recursion to iterate through all bones).
- Bone's default matrix has been renamed to pose matrix, and defines a global transform (relative to model matrix, not to parent's pose matrix)
- Bone's current matrix has been renamed to anim matrix, and contains a global transform to animate the bone for some specific frame.
- The bone's anim matrix has been moved to the Drawable class, which contains an array of matrices, one for each bone in its mesh.
- To animate a drawable, before calling Drawable_Draw, you must call Drawable_Animate now.

I am not attaching binary files this time, so you'll have to build yourself. The meshtool has not been updated, so the binary from version 1.1 will work, but fonttool has been updated, so you will need to build it (on Windows, you should install a recent version of the compiler TDM-GCC).


Enjoy!


ziggy(Posted 2015) [#2]
It's very nice!


therevills(Posted 2015) [#3]
Cool!

In your demos, it'll be nice to move around the scenes :)


JaviCervera(Posted 2015) [#4]
Thanks guys!

I could make some FPS demo with it, but I'd like to find some decent assets pack first to make something that looks good. First, I want to build a 1.0 release that includes a precompiled fonttool and meshtool, and also add documentation for them.

Also, once Monkey2 becomes more mature, it would also be nice to port Vortex to it, which would greatly expand its capabilities (like adding support for Bullet physics).


Snader(Posted 2015) [#5]
Nice work JaviCervera!


CopperCircle(Posted 2015) [#6]
Great work!


JaviCervera(Posted 2015) [#7]
I have uploaded platform-specific releases for version 1.0 which contain prebuilt tools. You can find them here:

https://github.com/JaviCervera/vortex/releases


emar(Posted 2015) [#8]
I put the vortex folder into the monkey/modules directory, but when i run the "tests" it says the identifier "Vortex" is not found.
Am i misplacing the files?Is a declaration missing? ive never had a problem installing modules before


either way this is radical, thank you for all the work! :)


JaviCervera(Posted 2015) [#9]
That's weird, I am not capable of reproducing the problem. Which version of Monkey and which OS are you using?


emar(Posted 2015) [#10]
Whoops im incredibly stupid, i have two different versions of monkey installed and windows was opening the old one

all working now, thanks for a quick reply!


JaviCervera(Posted 2015) [#11]
The free version should be enough AFAIK. Anyway, as a registered user of the Pro version, when I try to download the free version, it takes me to the Pro download page (which is a terrible thing by the way, I should be able to download the free version to try things like this).


emar(Posted 2015) [#12]
<see post below>


emar(Posted 2015) [#13]
I believe i stumbled on a bug in the meshtool......

heres the sphere mesh that came with the test project

format_code('{
"brushes":
[
{
"name": "default",
"blend": "alpha",
"base_color": [1,1,1],
"opacity": 1,
"shininess": 0.875
}
],
"surfaces":
[
{
"brush": "default",
"indices":[DELETED FOR POST SPACE]
"coords":[DELETED FOR POST SPACE]
"normals":[DELETED FOR POST SPACE]
}
]
}')

and An OBJ format model put through the converter.....

format_code('{
"brushes":
[
{
"name": "DefaultMaterial",
"base_color": [0.600000,0.600000,0.600000],
"blend": "alpha",
"opacity": 1.0,
"shininess": 0.000000
}
],
"surfaces":
[
{
"brush": "DefaultMaterial",
"indices":[DELETED FOR POST SPACE]
"coords":[DELETED FOR POST SPACE]
"normals":[DELETED FOR POST SPACE]
}
--->HERE
}')

it regularly misses that closing square bracket at the end(WHERE I WROTE "--->HERE", if i manually add the bracket, any model i try loads and displays just fine

hope this helps :)


JaviCervera(Posted 2015) [#14]
Whoops! Thanks for reporting that. Will check it. If you could send me the .obj file, it would be of great help!


emar(Posted 2015) [#15]
this is the file that was exported from blender...
format_codebox('# Blender v2.74 (sub 0) OBJ File: ''
# www.blender.org
mtllib untitled.mtl
o Sphere
v -0.195090 0.980785 0.000000
v -0.382683 0.923880 0.000000
v -0.555570 0.831470 0.000000
v -0.707107 0.707107 0.000000
v -0.831470 0.555570 0.000000
v -0.923880 0.382683 0.000000
v -0.980785 0.195090 0.000000
v -1.000000 0.000000 0.000000
v -0.980785 -0.195090 0.000000
v -0.923880 -0.382683 0.000000
v -0.831470 -0.555570 0.000000
v -0.707107 -0.707107 0.000000
v -0.555570 -0.831470 0.000000
v -0.382683 -0.923880 0.000000
v -0.195090 -0.980785 0.000000
v -0.191342 0.980785 -0.038060
v -0.375330 0.923880 -0.074658
v -0.544895 0.831470 -0.108386
v -0.693520 0.707107 -0.137950
v -0.815493 0.555570 -0.162212
v -0.906127 0.382683 -0.180240
v -0.961940 0.195090 -0.191342
v -0.980785 0.000000 -0.195090
v -0.961940 -0.195090 -0.191342
v -0.906127 -0.382683 -0.180240
v -0.815493 -0.555570 -0.162212
v -0.693520 -0.707107 -0.137950
v -0.544895 -0.831470 -0.108386
v -0.375330 -0.923880 -0.074658
v -0.191341 -0.980785 -0.038060
v -0.180240 0.980785 -0.074658
v -0.353553 0.923880 -0.146447
v -0.513280 0.831470 -0.212608
v -0.653281 0.707107 -0.270598
v -0.768178 0.555570 -0.318190
v -0.853553 0.382683 -0.353553
v -0.906127 0.195090 -0.375330
v -0.923879 0.000000 -0.382684
v -0.906127 -0.195090 -0.375330
v -0.853553 -0.382683 -0.353554
v -0.768178 -0.555570 -0.318190
v -0.653281 -0.707107 -0.270598
v -0.513280 -0.831470 -0.212608
v -0.353553 -0.923880 -0.146447
v -0.180240 -0.980785 -0.074658
v -0.162212 0.980785 -0.108387
v -0.318190 0.923880 -0.212608
v -0.461940 0.831470 -0.308658
v -0.587938 0.707107 -0.392848
v -0.691342 0.555570 -0.461940
v -0.768178 0.382683 -0.513280
v -0.815493 0.195090 -0.544895
v -0.831469 0.000000 -0.555570
v -0.815493 -0.195090 -0.544895
v -0.768178 -0.382683 -0.513280
v -0.691342 -0.555570 -0.461940
v -0.587938 -0.707107 -0.392848
v -0.461940 -0.831470 -0.308658
v -0.318189 -0.923880 -0.212608
v -0.162211 -0.980785 -0.108386
v -0.137950 0.980785 -0.137950
v -0.270598 0.923880 -0.270598
v -0.392847 0.831470 -0.392848
v -0.500000 0.707107 -0.500000
v -0.587938 0.555570 -0.587938
v -0.653281 0.382683 -0.653282
v -0.693520 0.195090 -0.693520
v -0.707107 0.000000 -0.707107
v -0.693520 -0.195090 -0.693520
v -0.653281 -0.382683 -0.653282
v -0.587938 -0.555570 -0.587938
v -0.500000 -0.707107 -0.500000
v -0.392847 -0.831470 -0.392848
v -0.270598 -0.923880 -0.270598
v -0.137949 -0.980785 -0.137950
v -0.108386 0.980785 -0.162212
v -0.212607 0.923880 -0.318190
v -0.308658 0.831470 -0.461940
v -0.392847 0.707107 -0.587938
v -0.461940 0.555570 -0.691342
v -0.513280 0.382683 -0.768178
v -0.544895 0.195090 -0.815493
v -0.555570 0.000000 -0.831470
v -0.544895 -0.195090 -0.815493
v -0.513280 -0.382683 -0.768178
v -0.461940 -0.555570 -0.691342
v -0.392847 -0.707107 -0.587938
v -0.308658 -0.831470 -0.461940
v -0.212607 -0.923880 -0.318190
v -0.108386 -0.980785 -0.162212
v -0.074658 0.980785 -0.180240
v -0.146446 0.923880 -0.353554
v -0.212607 0.831470 -0.513280
v -0.270598 0.707107 -0.653282
v -0.318189 0.555570 -0.768178
v -0.353553 0.382683 -0.853554
v -0.375330 0.195090 -0.906128
v -0.382683 0.000000 -0.923880
v -0.375330 -0.195090 -0.906128
v -0.353553 -0.382683 -0.853554
v -0.318189 -0.555570 -0.768178
v -0.270598 -0.707107 -0.653282
v -0.212607 -0.831470 -0.513280
v -0.146446 -0.923880 -0.353554
v -0.074658 -0.980785 -0.180240
v -0.038060 0.980785 -0.191342
v -0.074658 0.923880 -0.375331
v -0.108386 0.831470 -0.544895
v -0.137949 0.707107 -0.693520
v -0.162211 0.555570 -0.815493
v -0.180240 0.382683 -0.906128
v -0.191341 0.195090 -0.961940
v -0.195090 0.000000 -0.980785
v -0.191341 -0.195090 -0.961940
v -0.180240 -0.382683 -0.906128
v -0.162211 -0.555570 -0.815493
v -0.137949 -0.707107 -0.693520
v -0.108386 -0.831470 -0.544895
v -0.074658 -0.923880 -0.375330
v -0.038060 -0.980785 -0.191342
v 0.000000 0.980785 -0.195091
v 0.000000 0.923880 -0.382684
v 0.000000 0.831470 -0.555570
v 0.000000 0.707107 -0.707107
v 0.000000 0.555570 -0.831470
v 0.000000 0.382683 -0.923880
v 0.000000 0.195090 -0.980785
v 0.000000 0.000000 -1.000000
v 0.000000 -0.195090 -0.980785
v 0.000000 -0.382683 -0.923880
v 0.000000 -0.555570 -0.831470
v 0.000000 -0.707107 -0.707107
v 0.000000 -0.831470 -0.555570
v 0.000000 -0.923880 -0.382684
v 0.000000 -0.980785 -0.195090
v 0.038061 0.980785 -0.191342
v 0.074658 0.923880 -0.375331
v 0.108387 0.831470 -0.544895
v 0.137950 0.707107 -0.693520
v 0.162212 0.555570 -0.815493
v 0.180240 0.382683 -0.906128
v 0.191342 0.195090 -0.961940
v 0.195091 0.000000 -0.980785
v 0.191342 -0.195090 -0.961940
v 0.180240 -0.382683 -0.906128
v 0.162212 -0.555570 -0.815493
v 0.137950 -0.707107 -0.693520
v 0.108387 -0.831470 -0.544895
v 0.074658 -0.923880 -0.375330
v 0.038061 -0.980785 -0.191342
v 0.074658 0.980785 -0.180240
v 0.146447 0.923880 -0.353554
v 0.212608 0.831470 -0.513280
v 0.270598 0.707107 -0.653282
v 0.318190 0.555570 -0.768178
v 0.353554 0.382683 -0.853554
v 0.375331 0.195090 -0.906127
v 0.382684 0.000000 -0.923880
v 0.375331 -0.195090 -0.906127
v 0.353554 -0.382683 -0.853554
v 0.318190 -0.555570 -0.768178
v 0.270598 -0.707107 -0.653282
v 0.212608 -0.831470 -0.513280
v 0.146447 -0.923880 -0.353553
v 0.074658 -0.980785 -0.180240
v 0.108387 0.980785 -0.162212
v 0.212608 0.923880 -0.318190
v 0.308659 0.831470 -0.461940
v 0.392848 0.707107 -0.587938
v 0.461940 0.555570 -0.691342
v 0.513280 0.382683 -0.768178
v 0.544895 0.195090 -0.815493
v 0.555571 0.000000 -0.831470
v 0.544895 -0.195090 -0.815493
v 0.513280 -0.382683 -0.768178
v 0.461940 -0.555570 -0.691342
v 0.392848 -0.707107 -0.587938
v 0.308659 -0.831470 -0.461940
v 0.212608 -0.923880 -0.318190
v 0.108387 -0.980785 -0.162212
v 0.137950 0.980785 -0.137950
v 0.270599 0.923880 -0.270598
v 0.392848 0.831470 -0.392848
v 0.500000 0.707107 -0.500000
v 0.587938 0.555570 -0.587938
v 0.653282 0.382683 -0.653282
v 0.693520 0.195090 -0.693520
v 0.707107 0.000000 -0.707107
v 0.693520 -0.195090 -0.693520
v 0.653282 -0.382683 -0.653282
v 0.587938 -0.555570 -0.587938
v 0.500000 -0.707107 -0.500000
v 0.392848 -0.831470 -0.392848
v 0.270598 -0.923880 -0.270598
v 0.137950 -0.980785 -0.137950
v 0.162212 0.980785 -0.108386
v 0.318190 0.923880 -0.212608
v 0.461940 0.831470 -0.308658
v 0.587938 0.707107 -0.392848
v 0.691342 0.555570 -0.461940
v 0.768178 0.382683 -0.513280
v 0.815493 0.195090 -0.544895
v 0.831470 0.000000 -0.555570
v 0.815493 -0.195090 -0.544895
v 0.768178 -0.382683 -0.513280
v 0.691342 -0.555570 -0.461940
v 0.587938 -0.707107 -0.392848
v 0.461940 -0.831470 -0.308658
v 0.318190 -0.923880 -0.212608
v 0.162212 -0.980785 -0.108386
v 0.180240 0.980785 -0.074658
v 0.353554 0.923880 -0.146447
v 0.513280 0.831470 -0.212608
v 0.653282 0.707107 -0.270598
v 0.768178 0.555570 -0.318190
v 0.853554 0.382683 -0.353553
v 0.906128 0.195090 -0.375330
v 0.923880 0.000000 -0.382683
v 0.906128 -0.195090 -0.375330
v 0.853554 -0.382683 -0.353553
v 0.768178 -0.555570 -0.318190
v 0.653282 -0.707107 -0.270598
v 0.513280 -0.831470 -0.212608
v 0.353554 -0.923880 -0.146447
v 0.180240 -0.980785 -0.074658
v 0.191342 0.980785 -0.038060
v 0.375331 0.923880 -0.074658
v 0.544896 0.831470 -0.108386
v 0.693520 0.707107 -0.137950
v 0.815493 0.555570 -0.162212
v 0.906128 0.382683 -0.180240
v 0.961940 0.195090 -0.191342
v 0.980786 0.000000 -0.195090
v 0.961940 -0.195090 -0.191342
v 0.906128 -0.382683 -0.180240
v 0.815493 -0.555570 -0.162212
v 0.693520 -0.707107 -0.137950
v 0.544895 -0.831470 -0.108386
v 0.375331 -0.923880 -0.074658
v 0.191342 -0.980785 -0.038060
v 0.195091 0.980785 0.000000
v 0.382684 0.923880 -0.000000
v 0.555571 0.831470 -0.000000
v 0.707107 0.707107 0.000000
v 0.831470 0.555570 0.000000
v 0.923880 0.382683 -0.000000
v 0.980785 0.195090 0.000000
v 1.000000 0.000000 0.000000
v 0.980785 -0.195090 0.000000
v 0.923880 -0.382683 -0.000000
v 0.831470 -0.555570 0.000000
v 0.707107 -0.707107 0.000000
v 0.555570 -0.831470 0.000000
v 0.382684 -0.923880 -0.000000
v 0.195091 -0.980785 -0.000000
v 0.191342 0.980785 0.038060
v 0.375331 0.923880 0.074658
v 0.544896 0.831470 0.108386
v 0.693520 0.707107 0.137950
v 0.815493 0.555570 0.162212
v 0.906128 0.382683 0.180240
v 0.961940 0.195090 0.191342
v 0.980786 0.000000 0.195090
v 0.961940 -0.195090 0.191342
v 0.906128 -0.382683 0.180240
v 0.815493 -0.555570 0.162212
v 0.693520 -0.707107 0.137950
v 0.544895 -0.831470 0.108386
v 0.375331 -0.923880 0.074658
v 0.191342 -0.980785 0.038060
v 0.180240 0.980785 0.074658
v 0.353554 0.923880 0.146447
v 0.513280 0.831470 0.212608
v 0.653282 0.707107 0.270598
v 0.768178 0.555570 0.318190
v 0.853554 0.382683 0.353553
v 0.906127 0.195090 0.375330
v 0.923880 0.000000 0.382684
v 0.906127 -0.195090 0.375330
v 0.853554 -0.382683 0.353553
v 0.768178 -0.555570 0.318190
v 0.653282 -0.707107 0.270598
v 0.513280 -0.831470 0.212608
v 0.353554 -0.923880 0.146447
v 0.180240 -0.980785 0.074658
v 0.162212 0.980785 0.108386
v 0.318190 0.923880 0.212608
v 0.461940 0.831470 0.308658
v 0.587938 0.707107 0.392847
v 0.691342 0.555570 0.461940
v 0.768178 0.382683 0.513280
v 0.815493 0.195090 0.544895
v 0.831470 0.000000 0.555570
v 0.815493 -0.195090 0.544895
v 0.768178 -0.382683 0.513280
v 0.691342 -0.555570 0.461940
v 0.587938 -0.707107 0.392847
v 0.461940 -0.831470 0.308658
v 0.318190 -0.923880 0.212607
v 0.162212 -0.980785 0.108386
v 0.137950 0.980785 0.137950
v 0.270598 0.923880 0.270598
v 0.392848 0.831470 0.392848
v 0.500000 0.707107 0.500000
v 0.587938 0.555570 0.587938
v 0.653282 0.382683 0.653281
v 0.693520 0.195090 0.693520
v 0.707107 0.000000 0.707107
v 0.693520 -0.195090 0.693520
v 0.653282 -0.382683 0.653281
v 0.587938 -0.555570 0.587938
v 0.500000 -0.707107 0.500000
v 0.392848 -0.831470 0.392847
v 0.270598 -0.923880 0.270598
v 0.137950 -0.980785 0.137950
v 0.108387 0.980785 0.162212
v 0.212608 0.923880 0.318190
v 0.308659 0.831470 0.461940
v 0.392848 0.707107 0.587938
v 0.461940 0.555570 0.691342
v 0.513280 0.382683 0.768178
v 0.544895 0.195090 0.815493
v 0.555570 0.000000 0.831470
v 0.544895 -0.195090 0.815493
v 0.513280 -0.382683 0.768178
v 0.461940 -0.555570 0.691342
v 0.392848 -0.707107 0.587938
v 0.308658 -0.831470 0.461940
v 0.212608 -0.923880 0.318190
v 0.108387 -0.980785 0.162212
v 0.000000 -1.000000 0.000000
v 0.074658 0.980785 0.180240
v 0.146447 0.923880 0.353553
v 0.212608 0.831470 0.513280
v 0.270598 0.707107 0.653281
v 0.318190 0.555570 0.768177
v 0.353554 0.382683 0.853553
v 0.375330 0.195090 0.906127
v 0.382684 0.000000 0.923880
v 0.375330 -0.195090 0.906127
v 0.353554 -0.382683 0.853553
v 0.318190 -0.555570 0.768177
v 0.270598 -0.707107 0.653281
v 0.212608 -0.831470 0.513280
v 0.146447 -0.923880 0.353553
v 0.074658 -0.980785 0.180240
v 0.038061 0.980785 0.191342
v 0.074658 0.923880 0.375330
v 0.108387 0.831470 0.544895
v 0.137950 0.707107 0.693520
v 0.162212 0.555570 0.815493
v 0.180240 0.382683 0.906127
v 0.191342 0.195090 0.961939
v 0.195090 0.000000 0.980785
v 0.191342 -0.195090 0.961939
v 0.180240 -0.382683 0.906127
v 0.162212 -0.555570 0.815493
v 0.137950 -0.707107 0.693520
v 0.108387 -0.831470 0.544895
v 0.074658 -0.923880 0.375330
v 0.038061 -0.980785 0.191342
v 0.000000 0.980785 0.195090
v 0.000000 0.923880 0.382683
v 0.000000 0.831470 0.555570
v 0.000000 0.707107 0.707107
v 0.000000 0.555570 0.831469
v 0.000000 0.382683 0.923879
v 0.000000 0.195090 0.980785
v 0.000000 0.000000 1.000000
v 0.000000 -0.195090 0.980785
v 0.000000 -0.382683 0.923879
v 0.000000 -0.555570 0.831469
v 0.000000 -0.707107 0.707107
v 0.000000 -0.831470 0.555570
v 0.000000 -0.923880 0.382683
v 0.000000 -0.980785 0.195090
v -0.038060 0.980785 0.191342
v -0.074658 0.923880 0.375330
v -0.108386 0.831470 0.544895
v -0.137949 0.707107 0.693520
v -0.162211 0.555570 0.815493
v -0.180240 0.382683 0.906127
v -0.191342 0.195090 0.961939
v -0.195090 0.000000 0.980785
v -0.191342 -0.195090 0.961939
v -0.180240 -0.382683 0.906127
v -0.162211 -0.555570 0.815493
v -0.137949 -0.707107 0.693520
v -0.108386 -0.831470 0.544895
v -0.074658 -0.923880 0.375330
v -0.038060 -0.980785 0.191342
v -0.074658 0.980785 0.180240
v -0.146446 0.923880 0.353553
v -0.212607 0.831470 0.513280
v -0.270598 0.707107 0.653281
v -0.318189 0.555570 0.768177
v -0.353553 0.382683 0.853553
v -0.375330 0.195090 0.906127
v -0.382683 0.000000 0.923879
v -0.375330 -0.195090 0.906127
v -0.353553 -0.382683 0.853553
v -0.318189 -0.555570 0.768177
v -0.270598 -0.707107 0.653281
v -0.212607 -0.831470 0.513280
v -0.146446 -0.923880 0.353553
v -0.074657 -0.980785 0.180240
v -0.108386 0.980785 0.162212
v -0.212607 0.923880 0.318190
v -0.308658 0.831470 0.461940
v -0.392847 0.707107 0.587938
v -0.461939 0.555570 0.691341
v -0.513280 0.382683 0.768178
v -0.544895 0.195090 0.815493
v -0.555570 0.000000 0.831469
v -0.544895 -0.195090 0.815493
v -0.513280 -0.382683 0.768178
v -0.461939 -0.555570 0.691341
v -0.392847 -0.707107 0.587938
v -0.308658 -0.831470 0.461940
v -0.212607 -0.923880 0.318189
v -0.108386 -0.980785 0.162212
v -0.137949 0.980785 0.137950
v -0.270598 0.923880 0.270598
v -0.392847 0.831470 0.392847
v -0.500000 0.707107 0.500000
v -0.587937 0.555570 0.587937
v -0.653281 0.382683 0.653281
v -0.693519 0.195090 0.693519
v -0.707106 0.000000 0.707106
v -0.693519 -0.195090 0.693519
v -0.653281 -0.382683 0.653281
v -0.587937 -0.555570 0.587937
v -0.500000 -0.707107 0.500000
v -0.392847 -0.831470 0.392847
v -0.270598 -0.923880 0.270598
v -0.137949 -0.980785 0.137950
v -0.162211 0.980785 0.108386
v -0.318189 0.923880 0.212607
v -0.461939 0.831470 0.308658
v -0.587937 0.707107 0.392847
v -0.691341 0.555570 0.461939
v -0.768177 0.382683 0.513280
v -0.815492 0.195090 0.544895
v -0.831469 0.000000 0.555570
v -0.815492 -0.195090 0.544895
v -0.768177 -0.382683 0.513280
v -0.691341 -0.555570 0.461939
v -0.587937 -0.707107 0.392847
v -0.461939 -0.831470 0.308658
v -0.318189 -0.923880 0.212607
v -0.162211 -0.980785 0.108386
v 0.000000 1.000000 0.000000
v -0.180240 0.980785 0.074658
v -0.353553 0.923880 0.146447
v -0.513280 0.831470 0.212607
v -0.653281 0.707107 0.270598
v -0.768177 0.555570 0.318189
v -0.853553 0.382683 0.353553
v -0.906127 0.195090 0.375330
v -0.923879 0.000000 0.382683
v -0.906127 -0.195090 0.375330
v -0.853553 -0.382683 0.353553
v -0.768177 -0.555570 0.318189
v -0.653281 -0.707107 0.270598
v -0.513279 -0.831470 0.212607
v -0.353553 -0.923880 0.146446
v -0.180240 -0.980785 0.074658
v -0.191342 0.980785 0.038060
v -0.375330 0.923880 0.074658
v -0.544895 0.831470 0.108386
v -0.693520 0.707107 0.137950
v -0.815492 0.555570 0.162211
v -0.906127 0.382683 0.180240
v -0.961939 0.195090 0.191341
v -0.980785 0.000000 0.195090
v -0.961939 -0.195090 0.191341
v -0.906127 -0.382683 0.180240
v -0.815492 -0.555570 0.162211
v -0.693520 -0.707107 0.137950
v -0.544895 -0.831470 0.108386
v -0.375330 -0.923880 0.074658
v -0.191341 -0.980785 0.038060
vn -0.290200 0.956500 -0.028600
vn -0.633200 -0.771500 -0.062400
vn -0.878600 -0.469600 -0.086500
vn -0.990400 -0.097500 -0.097500
vn -0.952700 0.289000 -0.093800
vn -0.770800 0.632600 -0.075900
vn -0.470900 0.881000 -0.046400
vn -0.470900 -0.881000 -0.046400
vn -0.770800 -0.632600 -0.075900
vn -0.952700 -0.289000 -0.093800
vn -0.990400 0.097500 -0.097500
vn -0.878600 0.469600 -0.086500
vn -0.633200 0.771500 -0.062400
vn -0.290200 -0.956500 -0.028600
vn -0.952400 0.097500 -0.288900
vn -0.844800 0.469600 -0.256300
vn -0.608800 0.771500 -0.184700
vn -0.279000 -0.956500 -0.084600
vn -0.279000 0.956500 -0.084600
vn -0.608800 -0.771500 -0.184700
vn -0.844800 -0.469600 -0.256300
vn -0.952400 -0.097500 -0.288900
vn -0.916100 0.289000 -0.277900
vn -0.741200 0.632600 -0.224800
vn -0.452800 0.881000 -0.137400
vn -0.452800 -0.881000 -0.137400
vn -0.741200 -0.632600 -0.224800
vn -0.916100 -0.289000 -0.277900
vn -0.877700 0.097500 -0.469100
vn -0.778600 0.469600 -0.416200
vn -0.561100 0.771500 -0.299900
vn -0.257100 -0.956500 -0.137400
vn -0.257100 0.956500 -0.137400
vn -0.561100 -0.771500 -0.299900
vn -0.778600 -0.469600 -0.416200
vn -0.877700 -0.097500 -0.469100
vn -0.844300 0.289000 -0.451300
vn -0.683100 0.632600 -0.365100
vn -0.417300 0.881000 -0.223100
vn -0.417300 -0.881000 -0.223100
vn -0.683100 -0.632600 -0.365100
vn -0.844300 -0.289000 -0.451300
vn -0.769300 0.097600 -0.631400
vn -0.682500 0.469600 -0.560100
vn -0.491800 0.771500 -0.403600
vn -0.225400 -0.956500 -0.185000
vn -0.225400 0.956500 -0.185000
vn -0.491800 -0.771500 -0.403600
vn -0.682500 -0.469600 -0.560100
vn -0.769300 -0.097600 -0.631400
vn -0.740000 0.289000 -0.607300
vn -0.598700 0.632600 -0.491300
vn -0.365800 0.881000 -0.300200
vn -0.365800 -0.881000 -0.300200
vn -0.598700 -0.632600 -0.491300
vn -0.740000 -0.289000 -0.607300
vn -0.631400 0.097600 -0.769300
vn -0.560100 0.469600 -0.682500
vn -0.403600 0.771500 -0.491800
vn -0.185000 -0.956500 -0.225400
vn -0.185000 0.956500 -0.225400
vn -0.403600 -0.771500 -0.491800
vn -0.560100 -0.469600 -0.682500
vn -0.631400 -0.097600 -0.769300
vn -0.607300 0.289000 -0.740000
vn -0.491300 0.632600 -0.598700
vn -0.300200 0.881000 -0.365800
vn -0.300200 -0.881000 -0.365800
vn -0.491300 -0.632600 -0.598700
vn -0.607300 -0.289000 -0.740000
vn -0.469100 0.097600 -0.877700
vn -0.416200 0.469600 -0.778600
vn -0.299900 0.771500 -0.561100
vn -0.137400 -0.956500 -0.257100
vn -0.137400 0.956500 -0.257100
vn -0.299900 -0.771500 -0.561100
vn -0.416200 -0.469600 -0.778600
vn -0.469100 -0.097600 -0.877700
vn -0.451300 0.289000 -0.844300
vn -0.365100 0.632600 -0.683100
vn -0.223000 0.881000 -0.417300
vn -0.223000 -0.881000 -0.417300
vn -0.365100 -0.632600 -0.683100
vn -0.451300 -0.289000 -0.844300
vn -0.288900 0.097600 -0.952400
vn -0.256300 0.469600 -0.844800
vn -0.184700 0.771500 -0.608800
vn -0.084600 -0.956500 -0.279000
vn -0.084600 0.956500 -0.279000
vn -0.184700 -0.771500 -0.608800
vn -0.256300 -0.469600 -0.844800
vn -0.288900 -0.097600 -0.952400
vn -0.277900 0.289000 -0.916100
vn -0.224800 0.632600 -0.741200
vn -0.137400 0.881000 -0.452800
vn -0.137400 -0.881000 -0.452800
vn -0.224800 -0.632600 -0.741200
vn -0.277900 -0.289000 -0.916100
vn -0.097500 0.097600 -0.990400
vn -0.086500 0.469600 -0.878600
vn -0.062400 0.771500 -0.633200
vn -0.028600 -0.956500 -0.290200
vn -0.028600 0.956500 -0.290200
vn -0.062400 -0.771500 -0.633200
vn -0.086500 -0.469600 -0.878600
vn -0.097500 -0.097600 -0.990400
vn -0.093800 0.289000 -0.952700
vn -0.075900 0.632600 -0.770800
vn -0.046400 0.881000 -0.470900
vn -0.046400 -0.881000 -0.470900
vn -0.075900 -0.632600 -0.770800
vn -0.093800 -0.289000 -0.952700
vn 0.097500 0.097600 -0.990400
vn 0.086500 0.469600 -0.878600
vn 0.062400 0.771500 -0.633200
vn 0.028600 -0.956500 -0.290200
vn 0.028600 0.956500 -0.290200
vn 0.062400 -0.771500 -0.633200
vn 0.086500 -0.469600 -0.878600
vn 0.097500 -0.097600 -0.990400
vn 0.093800 0.289000 -0.952700
vn 0.075900 0.632600 -0.770800
vn 0.046400 0.881000 -0.470900
vn 0.046400 -0.881000 -0.470900
vn 0.075900 -0.632600 -0.770800
vn 0.093800 -0.289000 -0.952700
vn 0.288900 0.097600 -0.952400
vn 0.256300 0.469600 -0.844800
vn 0.184700 0.771500 -0.608800
vn 0.084600 -0.956500 -0.279000
vn 0.084600 0.956500 -0.279000
vn 0.184700 -0.771500 -0.608800
vn 0.256300 -0.469600 -0.844800
vn 0.288900 -0.097600 -0.952400
vn 0.277900 0.289000 -0.916100
vn 0.224800 0.632600 -0.741200
vn 0.137400 0.881000 -0.452800
vn 0.137400 -0.881000 -0.452800
vn 0.224800 -0.632600 -0.741200
vn 0.277900 -0.289000 -0.916100
vn 0.469100 0.097600 -0.877700
vn 0.416200 0.469600 -0.778600
vn 0.299900 0.771500 -0.561100
vn 0.137400 -0.956500 -0.257100
vn 0.137400 0.956500 -0.257100
vn 0.299900 -0.771500 -0.561100
vn 0.416200 -0.469600 -0.778600
vn 0.469100 -0.097600 -0.877700
vn 0.451300 0.289000 -0.844300
vn 0.365100 0.632600 -0.683100
vn 0.223000 0.881000 -0.417300
vn 0.223000 -0.881000 -0.417300
vn 0.365100 -0.632600 -0.683100
vn 0.451300 -0.289000 -0.844300
vn 0.631400 0.097600 -0.769300
vn 0.560100 0.469600 -0.682500
vn 0.403600 0.771500 -0.491800
vn 0.185000 -0.956500 -0.225400
vn 0.185000 0.956500 -0.225400
vn 0.403600 -0.771500 -0.491800
vn 0.560100 -0.469600 -0.682500
vn 0.631400 -0.097600 -0.769300
vn 0.607300 0.289000 -0.740000
vn 0.491300 0.632600 -0.598700
vn 0.300200 0.881000 -0.365800
vn 0.300200 -0.881000 -0.365800
vn 0.491300 -0.632600 -0.598700
vn 0.607300 -0.289000 -0.740000
vn 0.769300 0.097600 -0.631400
vn 0.682500 0.469600 -0.560100
vn 0.491800 0.771500 -0.403600
vn 0.225400 -0.956500 -0.185000
vn 0.225400 0.956500 -0.185000
vn 0.491800 -0.771500 -0.403600
vn 0.682500 -0.469600 -0.560100
vn 0.769300 -0.097600 -0.631400
vn 0.740000 0.289000 -0.607300
vn 0.598700 0.632600 -0.491300
vn 0.365800 0.881000 -0.300200
vn 0.365800 -0.881000 -0.300200
vn 0.598700 -0.632600 -0.491300
vn 0.740000 -0.289000 -0.607300
vn 0.877700 0.097600 -0.469100
vn 0.778600 0.469600 -0.416200
vn 0.561100 0.771500 -0.299900
vn 0.257100 -0.956500 -0.137400
vn 0.257100 0.956500 -0.137400
vn 0.561100 -0.771500 -0.299900
vn 0.778600 -0.469600 -0.416200
vn 0.877700 -0.097600 -0.469100
vn 0.844300 0.289000 -0.451300
vn 0.683100 0.632600 -0.365100
vn 0.417300 0.881000 -0.223100
vn 0.417300 -0.881000 -0.223000
vn 0.683100 -0.632600 -0.365100
vn 0.844300 -0.289000 -0.451300
vn 0.952400 0.097600 -0.288900
vn 0.844800 0.469600 -0.256300
vn 0.608800 0.771500 -0.184700
vn 0.279000 -0.956500 -0.084600
vn 0.279000 0.956500 -0.084600
vn 0.608800 -0.771500 -0.184700
vn 0.844800 -0.469600 -0.256300
vn 0.952400 -0.097600 -0.288900
vn 0.916100 0.289000 -0.277900
vn 0.741200 0.632600 -0.224800
vn 0.452800 0.881000 -0.137400
vn 0.452800 -0.881000 -0.137400
vn 0.741200 -0.632600 -0.224800
vn 0.916100 -0.289000 -0.277900
vn 0.990400 0.097600 -0.097500
vn 0.878600 0.469600 -0.086500
vn 0.633200 0.771500 -0.062400
vn 0.290200 -0.956500 -0.028600
vn 0.290200 0.956500 -0.028600
vn 0.633200 -0.771500 -0.062400
vn 0.878600 -0.469600 -0.086500
vn 0.990400 -0.097600 -0.097500
vn 0.952700 0.289000 -0.093800
vn 0.770800 0.632600 -0.075900
vn 0.470900 0.881000 -0.046400
vn 0.470900 -0.881000 -0.046400
vn 0.770800 -0.632600 -0.075900
vn 0.952700 -0.289000 -0.093800
vn 0.990400 0.097600 0.097500
vn 0.878600 0.469600 0.086500
vn 0.633200 0.771500 0.062400
vn 0.290200 -0.956500 0.028600
vn 0.290200 0.956500 0.028600
vn 0.633200 -0.771500 0.062400
vn 0.878600 -0.469600 0.086500
vn 0.990400 -0.097600 0.097500
vn 0.952700 0.289000 0.093800
vn 0.770800 0.632600 0.075900
vn 0.470900 0.881000 0.046400
vn 0.470900 -0.881000 0.046400
vn 0.770800 -0.632600 0.075900
vn 0.952700 -0.289000 0.093800
vn 0.952400 0.097600 0.288900
vn 0.844800 0.469600 0.256300
vn 0.608800 0.771500 0.184700
vn 0.279000 -0.956500 0.084600
vn 0.279000 0.956500 0.084600
vn 0.608800 -0.771500 0.184700
vn 0.844800 -0.469600 0.256300
vn 0.952400 -0.097600 0.288900
vn 0.916100 0.289000 0.277900
vn 0.741200 0.632600 0.224800
vn 0.452800 0.881000 0.137400
vn 0.452800 -0.881000 0.137400
vn 0.741200 -0.632600 0.224800
vn 0.916100 -0.289000 0.277900
vn 0.877700 0.097600 0.469100
vn 0.778600 0.469600 0.416200
vn 0.561100 0.771500 0.299900
vn 0.257100 -0.956500 0.137400
vn 0.257100 0.956500 0.137400
vn 0.561100 -0.771500 0.299900
vn 0.778600 -0.469600 0.416200
vn 0.877700 -0.097600 0.469100
vn 0.844300 0.289000 0.451300
vn 0.683100 0.632600 0.365100
vn 0.417300 0.881000 0.223100
vn 0.417300 -0.881000 0.223100
vn 0.683100 -0.632600 0.365100
vn 0.844300 -0.289000 0.451300
vn 0.769300 0.097600 0.631400
vn 0.682500 0.469600 0.560100
vn 0.491800 0.771500 0.403600
vn 0.225400 -0.956500 0.185000
vn 0.225400 0.956500 0.185000
vn 0.491800 -0.771500 0.403600
vn 0.682500 -0.469600 0.560100
vn 0.769300 -0.097600 0.631400
vn 0.740000 0.289000 0.607300
vn 0.598700 0.632600 0.491300
vn 0.365800 0.881000 0.300200
vn 0.365800 -0.881000 0.300200
vn 0.598700 -0.632600 0.491300
vn 0.740000 -0.289000 0.607300
vn 0.631400 0.097600 0.769300
vn 0.560100 0.469600 0.682500
vn 0.403600 0.771500 0.491800
vn 0.185000 -0.956500 0.225400
vn 0.185000 0.956500 0.225400
vn 0.403600 -0.771500 0.491800
vn 0.560100 -0.469600 0.682500
vn 0.631400 -0.097600 0.769300
vn 0.607300 0.289000 0.740000
vn 0.491300 0.632600 0.598700
vn 0.300200 0.881000 0.365800
vn 0.300200 -0.881000 0.365800
vn 0.491300 -0.632600 0.598700
vn 0.607300 -0.289000 0.740000
vn 0.469100 0.097600 0.877700
vn 0.416200 0.469600 0.778600
vn 0.299900 0.771500 0.561100
vn 0.137400 -0.956500 0.257100
vn 0.137400 0.956500 0.257100
vn 0.299900 -0.771500 0.561100
vn 0.416200 -0.469600 0.778600
vn 0.469100 -0.097600 0.877700
vn 0.451300 0.289000 0.844300
vn 0.365100 0.632600 0.683100
vn 0.223000 0.881000 0.417300
vn 0.223000 -0.881000 0.417300
vn 0.365100 -0.632600 0.683100
vn 0.451300 -0.289000 0.844300
vn 0.288900 0.097600 0.952400
vn 0.256300 0.469600 0.844800
vn 0.184700 0.771500 0.608800
vn 0.084600 -0.956500 0.279000
vn 0.084600 0.956500 0.279000
vn 0.184700 -0.771500 0.608800
vn 0.256300 -0.469600 0.844800
vn 0.288900 -0.097600 0.952400
vn 0.277900 0.289000 0.916100
vn 0.224800 0.632600 0.741200
vn 0.137400 0.881000 0.452800
vn 0.137400 -0.881000 0.452800
vn 0.224800 -0.632600 0.741200
vn 0.277900 -0.289000 0.916100
vn 0.097500 0.097600 0.990400
vn 0.086500 0.469600 0.878600
vn 0.062400 0.771500 0.633200
vn 0.028600 -0.956500 0.290200
vn 0.028600 0.956500 0.290200
vn 0.062400 -0.771500 0.633200
vn 0.086500 -0.469600 0.878600
vn 0.097500 -0.097600 0.990400
vn 0.093800 0.289000 0.952700
vn 0.075900 0.632600 0.770800
vn 0.046400 0.881000 0.470900
vn 0.046400 -0.881000 0.470900
vn 0.075900 -0.632600 0.770800
vn 0.093800 -0.289000 0.952700
vn -0.097600 0.097600 0.990400
vn -0.086500 0.469600 0.878600
vn -0.062400 0.771500 0.633200
vn -0.028600 -0.956500 0.290200
vn -0.028600 0.956500 0.290200
vn -0.062400 -0.771500 0.633200
vn -0.086500 -0.469600 0.878600
vn -0.097600 -0.097600 0.990400
vn -0.093800 0.289000 0.952700
vn -0.075900 0.632600 0.770800
vn -0.046400 0.881000 0.470900
vn -0.046400 -0.881000 0.470900
vn -0.075900 -0.632600 0.770800
vn -0.093800 -0.289000 0.952700
vn -0.288900 0.097600 0.952400
vn -0.256300 0.469600 0.844800
vn -0.184700 0.771500 0.608800
vn -0.084600 -0.956500 0.279000
vn -0.084600 0.956500 0.279000
vn -0.184700 -0.771500 0.608800
vn -0.256300 -0.469600 0.844800
vn -0.288900 -0.097600 0.952400
vn -0.277900 0.289000 0.916100
vn -0.224800 0.632600 0.741200
vn -0.137400 0.881000 0.452800
vn -0.137400 -0.881000 0.452800
vn -0.224800 -0.632600 0.741200
vn -0.277900 -0.289000 0.916100
vn -0.469100 0.097600 0.877700
vn -0.416200 0.469600 0.778600
vn -0.299900 0.771500 0.561100
vn -0.137400 -0.956500 0.257100
vn -0.137400 0.956500 0.257100
vn -0.299900 -0.771500 0.561100
vn -0.416200 -0.469600 0.778600
vn -0.469100 -0.097600 0.877700
vn -0.451300 0.289000 0.844300
vn -0.365100 0.632600 0.683100
vn -0.223100 0.881000 0.417300
vn -0.223100 -0.881000 0.417300
vn -0.365100 -0.632600 0.683100
vn -0.451300 -0.289000 0.844300
vn -0.631400 0.097600 0.769300
vn -0.560100 0.469600 0.682500
vn -0.403600 0.771500 0.491800
vn -0.185000 -0.956500 0.225400
vn -0.185000 0.956500 0.225400
vn -0.403600 -0.771500 0.491800
vn -0.560100 -0.469600 0.682500
vn -0.631400 -0.097600 0.769300
vn -0.607300 0.289000 0.740000
vn -0.491300 0.632600 0.598700
vn -0.300200 0.881000 0.365800
vn -0.300200 -0.881000 0.365800
vn -0.491300 -0.632600 0.598700
vn -0.607300 -0.289000 0.740000
vn -0.769300 0.097600 0.631400
vn -0.682500 0.469600 0.560100
vn -0.491800 0.771500 0.403600
vn -0.225400 -0.956500 0.185000
vn -0.225400 0.956500 0.185000
vn -0.491800 -0.771500 0.403600
vn -0.682500 -0.469600 0.560100
vn -0.769300 -0.097600 0.631400
vn -0.740000 0.289000 0.607300
vn -0.598700 0.632600 0.491300
vn -0.365800 0.881000 0.300200
vn -0.365800 -0.881000 0.300200
vn -0.598700 -0.632600 0.491300
vn -0.740000 -0.289000 0.607300
vn -0.877700 0.097600 0.469100
vn -0.778600 0.469600 0.416200
vn -0.561100 0.771500 0.299900
vn -0.257100 -0.956500 0.137400
vn -0.257100 0.956500 0.137400
vn -0.561100 -0.771500 0.299900
vn -0.778600 -0.469600 0.416200
vn -0.877700 -0.097600 0.469100
vn -0.844300 0.289000 0.451300
vn -0.683100 0.632600 0.365100
vn -0.417300 0.881000 0.223000
vn -0.417300 -0.881000 0.223000
vn -0.683100 -0.632600 0.365100
vn -0.844300 -0.289000 0.451300
vn -0.952400 0.097600 0.288900
vn -0.844800 0.469600 0.256300
vn -0.608800 0.771500 0.184700
vn -0.279000 -0.956500 0.084600
vn -0.279000 0.956500 0.084600
vn -0.608800 -0.771500 0.184700
vn -0.844800 -0.469600 0.256300
vn -0.952400 -0.097600 0.288900
vn -0.916100 0.289000 0.277900
vn -0.741200 0.632600 0.224800
vn -0.452800 0.881000 0.137400
vn -0.452800 -0.881000 0.137400
vn -0.741200 -0.632600 0.224800
vn -0.916100 -0.289000 0.277900
vn -0.098000 -0.995100 -0.009700
vn -0.098000 0.995100 -0.009700
vn -0.094200 -0.995100 -0.028600
vn -0.094200 0.995100 -0.028600
vn -0.086900 -0.995100 -0.046400
vn -0.086900 0.995100 -0.046400
vn -0.076100 -0.995100 -0.062500
vn -0.076100 0.995100 -0.062500
vn -0.062500 -0.995100 -0.076100
vn -0.062500 0.995100 -0.076100
vn -0.046400 -0.995100 -0.086900
vn -0.046400 0.995100 -0.086900
vn -0.028600 -0.995100 -0.094200
vn -0.028600 0.995100 -0.094200
vn -0.009700 -0.995100 -0.098000
vn -0.009700 0.995100 -0.098000
vn 0.009700 -0.995100 -0.098000
vn 0.009700 0.995100 -0.098000
vn 0.028600 -0.995100 -0.094200
vn 0.028600 0.995100 -0.094200
vn 0.046400 -0.995100 -0.086900
vn 0.046400 0.995100 -0.086900
vn 0.062500 -0.995100 -0.076100
vn 0.062500 0.995100 -0.076100
vn 0.076100 -0.995100 -0.062500
vn 0.076100 0.995100 -0.062500
vn 0.086900 -0.995100 -0.046400
vn 0.086900 0.995100 -0.046400
vn 0.094200 -0.995100 -0.028600
vn 0.094200 0.995100 -0.028600
vn 0.098000 -0.995100 -0.009700
vn 0.098000 0.995100 -0.009700
vn 0.098000 -0.995100 0.009700
vn 0.098000 0.995100 0.009700
vn 0.094200 -0.995100 0.028600
vn 0.094200 0.995100 0.028600
vn 0.086900 -0.995100 0.046400
vn 0.086900 0.995100 0.046400
vn 0.076100 -0.995100 0.062500
vn 0.076100 0.995100 0.062500
vn 0.062500 -0.995100 0.076100
vn 0.062500 0.995100 0.076100
vn 0.046400 -0.995100 0.086900
vn 0.046400 0.995100 0.086900
vn 0.028600 -0.995100 0.094200
vn 0.028600 0.995100 0.094200
vn 0.009700 -0.995100 0.098000
vn 0.009700 0.995100 0.098000
vn -0.009700 -0.995100 0.098000
vn -0.009700 0.995100 0.098000
vn -0.028600 -0.995100 0.094200
vn -0.028600 0.995100 0.094200
vn -0.046400 -0.995100 0.086900
vn -0.046400 0.995100 0.086900
vn -0.062500 -0.995100 0.076100
vn -0.062500 0.995100 0.076100
vn -0.076100 -0.995100 0.062500
vn -0.076100 0.995100 0.062500
vn -0.086900 -0.995100 0.046400
vn -0.086900 0.995100 0.046400
vn -0.094200 -0.995100 0.028600
vn -0.094200 0.995100 0.028600
vn -0.990400 0.097500 0.097600
vn -0.878600 0.469600 0.086500
vn -0.633200 0.771500 0.062400
vn -0.290200 -0.956500 0.028600
vn -0.290200 0.956500 0.028600
vn -0.633200 -0.771500 0.062400
vn -0.878600 -0.469600 0.086500
vn -0.990400 -0.097500 0.097600
vn -0.952700 0.289000 0.093800
vn -0.770800 0.632600 0.075900
vn -0.098000 -0.995100 0.009700
vn -0.470900 0.881000 0.046400
vn -0.470900 -0.881000 0.046400
vn -0.098000 0.995100 0.009700
vn -0.770800 -0.632600 0.075900
vn -0.952700 -0.289000 0.093800
usemtl None
s off
f 2//1 1//1 16//1 17//1
f 13//2 12//2 27//2 28//2
f 11//3 10//3 25//3 26//3
f 9//4 8//4 23//4 24//4
f 7//5 6//5 21//5 22//5
f 5//6 4//6 19//6 20//6
f 3//7 2//7 17//7 18//7
f 14//8 13//8 28//8 29//8
f 12//9 11//9 26//9 27//9
f 10//10 9//10 24//10 25//10
f 8//11 7//11 22//11 23//11
f 6//12 5//12 20//12 21//12
f 4//13 3//13 18//13 19//13
f 15//14 14//14 29//14 30//14
f 23//15 22//15 37//15 38//15
f 21//16 20//16 35//16 36//16
f 19//17 18//17 33//17 34//17
f 30//18 29//18 44//18 45//18
f 17//19 16//19 31//19 32//19
f 28//20 27//20 42//20 43//20
f 26//21 25//21 40//21 41//21
f 24//22 23//22 38//22 39//22
f 22//23 21//23 36//23 37//23
f 20//24 19//24 34//24 35//24
f 18//25 17//25 32//25 33//25
f 29//26 28//26 43//26 44//26
f 27//27 26//27 41//27 42//27
f 25//28 24//28 39//28 40//28
f 38//29 37//29 52//29 53//29
f 36//30 35//30 50//30 51//30
f 34//31 33//31 48//31 49//31
f 45//32 44//32 59//32 60//32
f 32//33 31//33 46//33 47//33
f 43//34 42//34 57//34 58//34
f 41//35 40//35 55//35 56//35
f 39//36 38//36 53//36 54//36
f 37//37 36//37 51//37 52//37
f 35//38 34//38 49//38 50//38
f 33//39 32//39 47//39 48//39
f 44//40 43//40 58//40 59//40
f 42//41 41//41 56//41 57//41
f 40//42 39//42 54//42 55//42
f 53//43 52//43 67//43 68//43
f 51//44 50//44 65//44 66//44
f 49//45 48//45 63//45 64//45
f 60//46 59//46 74//46 75//46
f 47//47 46//47 61//47 62//47
f 58//48 57//48 72//48 73//48
f 56//49 55//49 70//49 71//49
f 54//50 53//50 68//50 69//50
f 52//51 51//51 66//51 67//51
f 50//52 49//52 64//52 65//52
f 48//53 47//53 62//53 63//53
f 59//54 58//54 73//54 74//54
f 57//55 56//55 71//55 72//55
f 55//56 54//56 69//56 70//56
f 68//57 67//57 82//57 83//57
f 66//58 65//58 80//58 81//58
f 64//59 63//59 78//59 79//59
f 75//60 74//60 89//60 90//60
f 62//61 61//61 76//61 77//61
f 73//62 72//62 87//62 88//62
f 71//63 70//63 85//63 86//63
f 69//64 68//64 83//64 84//64
f 67//65 66//65 81//65 82//65
f 65//66 64//66 79//66 80//66
f 63//67 62//67 77//67 78//67
f 74//68 73//68 88//68 89//68
f 72//69 71//69 86//69 87//69
f 70//70 69//70 84//70 85//70
f 83//71 82//71 97//71 98//71
f 81//72 80//72 95//72 96//72
f 79//73 78//73 93//73 94//73
f 90//74 89//74 104//74 105//74
f 77//75 76//75 91//75 92//75
f 88//76 87//76 102//76 103//76
f 86//77 85//77 100//77 101//77
f 84//78 83//78 98//78 99//78
f 82//79 81//79 96//79 97//79
f 80//80 79//80 94//80 95//80
f 78//81 77//81 92//81 93//81
f 89//82 88//82 103//82 104//82
f 87//83 86//83 101//83 102//83
f 85//84 84//84 99//84 100//84
f 98//85 97//85 112//85 113//85
f 96//86 95//86 110//86 111//86
f 94//87 93//87 108//87 109//87
f 105//88 104//88 119//88 120//88
f 92//89 91//89 106//89 107//89
f 103//90 102//90 117//90 118//90
f 101//91 100//91 115//91 116//91
f 99//92 98//92 113//92 114//92
f 97//93 96//93 111//93 112//93
f 95//94 94//94 109//94 110//94
f 93//95 92//95 107//95 108//95
f 104//96 103//96 118//96 119//96
f 102//97 101//97 116//97 117//97
f 100//98 99//98 114//98 115//98
f 113//99 112//99 127//99 128//99
f 111//100 110//100 125//100 126//100
f 109//101 108//101 123//101 124//101
f 120//102 119//102 134//102 135//102
f 107//103 106//103 121//103 122//103
f 118//104 117//104 132//104 133//104
f 116//105 115//105 130//105 131//105
f 114//106 113//106 128//106 129//106
f 112//107 111//107 126//107 127//107
f 110//108 109//108 124//108 125//108
f 108//109 107//109 122//109 123//109
f 119//110 118//110 133//110 134//110
f 117//111 116//111 131//111 132//111
f 115//112 114//112 129//112 130//112
f 128//113 127//113 142//113 143//113
f 126//114 125//114 140//114 141//114
f 124//115 123//115 138//115 139//115
f 135//116 134//116 149//116 150//116
f 122//117 121//117 136//117 137//117
f 133//118 132//118 147//118 148//118
f 131//119 130//119 145//119 146//119
f 129//120 128//120 143//120 144//120
f 127//121 126//121 141//121 142//121
f 125//122 124//122 139//122 140//122
f 123//123 122//123 137//123 138//123
f 134//124 133//124 148//124 149//124
f 132//125 131//125 146//125 147//125
f 130//126 129//126 144//126 145//126
f 143//127 142//127 157//127 158//127
f 141//128 140//128 155//128 156//128
f 139//129 138//129 153//129 154//129
f 150//130 149//130 164//130 165//130
f 137//131 136//131 151//131 152//131
f 148//132 147//132 162//132 163//132
f 146//133 145//133 160//133 161//133
f 144//134 143//134 158//134 159//134
f 142//135 141//135 156//135 157//135
f 140//136 139//136 154//136 155//136
f 138//137 137//137 152//137 153//137
f 149//138 148//138 163//138 164//138
f 147//139 146//139 161//139 162//139
f 145//140 144//140 159//140 160//140
f 158//141 157//141 172//141 173//141
f 156//142 155//142 170//142 171//142
f 154//143 153//143 168//143 169//143
f 165//144 164//144 179//144 180//144
f 152//145 151//145 166//145 167//145
f 163//146 162//146 177//146 178//146
f 161//147 160//147 175//147 176//147
f 159//148 158//148 173//148 174//148
f 157//149 156//149 171//149 172//149
f 155//150 154//150 169//150 170//150
f 153//151 152//151 167//151 168//151
f 164//152 163//152 178//152 179//152
f 162//153 161//153 176//153 177//153
f 160//154 159//154 174//154 175//154
f 173//155 172//155 187//155 188//155
f 171//156 170//156 185//156 186//156
f 169//157 168//157 183//157 184//157
f 180//158 179//158 194//158 195//158
f 167//159 166//159 181//159 182//159
f 178//160 177//160 192//160 193//160
f 176//161 175//161 190//161 191//161
f 174//162 173//162 188//162 189//162
f 172//163 171//163 186//163 187//163
f 170//164 169//164 184//164 185//164
f 168//165 167//165 182//165 183//165
f 179//166 178//166 193//166 194//166
f 177//167 176//167 191//167 192//167
f 175//168 174//168 189//168 190//168
f 188//169 187//169 202//169 203//169
f 186//170 185//170 200//170 201//170
f 184//171 183//171 198//171 199//171
f 195//172 194//172 209//172 210//172
f 182//173 181//173 196//173 197//173
f 193//174 192//174 207//174 208//174
f 191//175 190//175 205//175 206//175
f 189//176 188//176 203//176 204//176
f 187//177 186//177 201//177 202//177
f 185//178 184//178 199//178 200//178
f 183//179 182//179 197//179 198//179
f 194//180 193//180 208//180 209//180
f 192//181 191//181 206//181 207//181
f 190//182 189//182 204//182 205//182
f 203//183 202//183 217//183 218//183
f 201//184 200//184 215//184 216//184
f 199//185 198//185 213//185 214//185
f 210//186 209//186 224//186 225//186
f 197//187 196//187 211//187 212//187
f 208//188 207//188 222//188 223//188
f 206//189 205//189 220//189 221//189
f 204//190 203//190 218//190 219//190
f 202//191 201//191 216//191 217//191
f 200//192 199//192 214//192 215//192
f 198//193 197//193 212//193 213//193
f 209//194 208//194 223//194 224//194
f 207//195 206//195 221//195 222//195
f 205//196 204//196 219//196 220//196
f 218//197 217//197 232//197 233//197
f 216//198 215//198 230//198 231//198
f 214//199 213//199 228//199 229//199
f 225//200 224//200 239//200 240//200
f 212//201 211//201 226//201 227//201
f 223//202 222//202 237//202 238//202
f 221//203 220//203 235//203 236//203
f 219//204 218//204 233//204 234//204
f 217//205 216//205 231//205 232//205
f 215//206 214//206 229//206 230//206
f 213//207 212//207 227//207 228//207
f 224//208 223//208 238//208 239//208
f 222//209 221//209 236//209 237//209
f 220//210 219//210 234//210 235//210
f 233//211 232//211 247//211 248//211
f 231//212 230//212 245//212 246//212
f 229//213 228//213 243//213 244//213
f 240//214 239//214 254//214 255//214
f 227//215 226//215 241//215 242//215
f 238//216 237//216 252//216 253//216
f 236//217 235//217 250//217 251//217
f 234//218 233//218 248//218 249//218
f 232//219 231//219 246//219 247//219
f 230//220 229//220 244//220 245//220
f 228//221 227//221 242//221 243//221
f 239//222 238//222 253//222 254//222
f 237//223 236//223 251//223 252//223
f 235//224 234//224 249//224 250//224
f 248//225 247//225 262//225 263//225
f 246//226 245//226 260//226 261//226
f 244//227 243//227 258//227 259//227
f 255//228 254//228 269//228 270//228
f 242//229 241//229 256//229 257//229
f 253//230 252//230 267//230 268//230
f 251//231 250//231 265//231 266//231
f 249//232 248//232 263//232 264//232
f 247//233 246//233 261//233 262//233
f 245//234 244//234 259//234 260//234
f 243//235 242//235 257//235 258//235
f 254//236 253//236 268//236 269//236
f 252//237 251//237 266//237 267//237
f 250//238 249//238 264//238 265//238
f 263//239 262//239 277//239 278//239
f 261//240 260//240 275//240 276//240
f 259//241 258//241 273//241 274//241
f 270//242 269//242 284//242 285//242
f 257//243 256//243 271//243 272//243
f 268//244 267//244 282//244 283//244
f 266//245 265//245 280//245 281//245
f 264//246 263//246 278//246 279//246
f 262//247 261//247 276//247 277//247
f 260//248 259//248 274//248 275//248
f 258//249 257//249 272//249 273//249
f 269//250 268//250 283//250 284//250
f 267//251 266//251 281//251 282//251
f 265//252 264//252 279//252 280//252
f 278//253 277//253 292//253 293//253
f 276//254 275//254 290//254 291//254
f 274//255 273//255 288//255 289//255
f 285//256 284//256 299//256 300//256
f 272//257 271//257 286//257 287//257
f 283//258 282//258 297//258 298//258
f 281//259 280//259 295//259 296//259
f 279//260 278//260 293//260 294//260
f 277//261 276//261 291//261 292//261
f 275//262 274//262 289//262 290//262
f 273//263 272//263 287//263 288//263
f 284//264 283//264 298//264 299//264
f 282//265 281//265 296//265 297//265
f 280//266 279//266 294//266 295//266
f 293//267 292//267 307//267 308//267
f 291//268 290//268 305//268 306//268
f 289//269 288//269 303//269 304//269
f 300//270 299//270 314//270 315//270
f 287//271 286//271 301//271 302//271
f 298//272 297//272 312//272 313//272
f 296//273 295//273 310//273 311//273
f 294//274 293//274 308//274 309//274
f 292//275 291//275 306//275 307//275
f 290//276 289//276 304//276 305//276
f 288//277 287//277 302//277 303//277
f 299//278 298//278 313//278 314//278
f 297//279 296//279 311//279 312//279
f 295//280 294//280 309//280 310//280
f 308//281 307//281 322//281 323//281
f 306//282 305//282 320//282 321//282
f 304//283 303//283 318//283 319//283
f 315//284 314//284 329//284 330//284
f 302//285 301//285 316//285 317//285
f 313//286 312//286 327//286 328//286
f 311//287 310//287 325//287 326//287
f 309//288 308//288 323//288 324//288
f 307//289 306//289 321//289 322//289
f 305//290 304//290 319//290 320//290
f 303//291 302//291 317//291 318//291
f 314//292 313//292 328//292 329//292
f 312//293 311//293 326//293 327//293
f 310//294 309//294 324//294 325//294
f 323//295 322//295 338//295 339//295
f 321//296 320//296 336//296 337//296
f 319//297 318//297 334//297 335//297
f 330//298 329//298 345//298 346//298
f 317//299 316//299 332//299 333//299
f 328//300 327//300 343//300 344//300
f 326//301 325//301 341//301 342//301
f 324//302 323//302 339//302 340//302
f 322//303 321//303 337//303 338//303
f 320//304 319//304 335//304 336//304
f 318//305 317//305 333//305 334//305
f 329//306 328//306 344//306 345//306
f 327//307 326//307 342//307 343//307
f 325//308 324//308 340//308 341//308
f 339//309 338//309 353//309 354//309
f 337//310 336//310 351//310 352//310
f 335//311 334//311 349//311 350//311
f 346//312 345//312 360//312 361//312
f 333//313 332//313 347//313 348//313
f 344//314 343//314 358//314 359//314
f 342//315 341//315 356//315 357//315
f 340//316 339//316 354//316 355//316
f 338//317 337//317 352//317 353//317
f 336//318 335//318 350//318 351//318
f 334//319 333//319 348//319 349//319
f 345//320 344//320 359//320 360//320
f 343//321 342//321 357//321 358//321
f 341//322 340//322 355//322 356//322
f 354//323 353//323 368//323 369//323
f 352//324 351//324 366//324 367//324
f 350//325 349//325 364//325 365//325
f 361//326 360//326 375//326 376//326
f 348//327 347//327 362//327 363//327
f 359//328 358//328 373//328 374//328
f 357//329 356//329 371//329 372//329
f 355//330 354//330 369//330 370//330
f 353//331 352//331 367//331 368//331
f 351//332 350//332 365//332 366//332
f 349//333 348//333 363//333 364//333
f 360//334 359//334 374//334 375//334
f 358//335 357//335 372//335 373//335
f 356//336 355//336 370//336 371//336
f 369//337 368//337 383//337 384//337
f 367//338 366//338 381//338 382//338
f 365//339 364//339 379//339 380//339
f 376//340 375//340 390//340 391//340
f 363//341 362//341 377//341 378//341
f 374//342 373//342 388//342 389//342
f 372//343 371//343 386//343 387//343
f 370//344 369//344 384//344 385//344
f 368//345 367//345 382//345 383//345
f 366//346 365//346 380//346 381//346
f 364//347 363//347 378//347 379//347
f 375//348 374//348 389//348 390//348
f 373//349 372//349 387//349 388//349
f 371//350 370//350 385//350 386//350
f 384//351 383//351 398//351 399//351
f 382//352 381//352 396//352 397//352
f 380//353 379//353 394//353 395//353
f 391//354 390//354 405//354 406//354
f 378//355 377//355 392//355 393//355
f 389//356 388//356 403//356 404//356
f 387//357 386//357 401//357 402//357
f 385//358 384//358 399//358 400//358
f 383//359 382//359 397//359 398//359
f 381//360 380//360 395//360 396//360
f 379//361 378//361 393//361 394//361
f 390//362 389//362 404//362 405//362
f 388//363 387//363 402//363 403//363
f 386//364 385//364 400//364 401//364
f 399//365 398//365 413//365 414//365
f 397//366 396//366 411//366 412//366
f 395//367 394//367 409//367 410//367
f 406//368 405//368 420//368 421//368
f 393//369 392//369 407//369 408//369
f 404//370 403//370 418//370 419//370
f 402//371 401//371 416//371 417//371
f 400//372 399//372 414//372 415//372
f 398//373 397//373 412//373 413//373
f 396//374 395//374 410//374 411//374
f 394//375 393//375 408//375 409//375
f 405//376 404//376 419//376 420//376
f 403//377 402//377 417//377 418//377
f 401//378 400//378 415//378 416//378
f 414//379 413//379 428//379 429//379
f 412//380 411//380 426//380 427//380
f 410//381 409//381 424//381 425//381
f 421//382 420//382 435//382 436//382
f 408//383 407//383 422//383 423//383
f 419//384 418//384 433//384 434//384
f 417//385 416//385 431//385 432//385
f 415//386 414//386 429//386 430//386
f 413//387 412//387 427//387 428//387
f 411//388 410//388 425//388 426//388
f 409//389 408//389 423//389 424//389
f 420//390 419//390 434//390 435//390
f 418//391 417//391 432//391 433//391
f 416//392 415//392 430//392 431//392
f 429//393 428//393 443//393 444//393
f 427//394 426//394 441//394 442//394
f 425//395 424//395 439//395 440//395
f 436//396 435//396 450//396 451//396
f 423//397 422//397 437//397 438//397
f 434//398 433//398 448//398 449//398
f 432//399 431//399 446//399 447//399
f 430//400 429//400 444//400 445//400
f 428//401 427//401 442//401 443//401
f 426//402 425//402 440//402 441//402
f 424//403 423//403 438//403 439//403
f 435//404 434//404 449//404 450//404
f 433//405 432//405 447//405 448//405
f 431//406 430//406 445//406 446//406
f 444//407 443//407 459//407 460//407
f 442//408 441//408 457//408 458//408
f 440//409 439//409 455//409 456//409
f 451//410 450//410 466//410 467//410
f 438//411 437//411 453//411 454//411
f 449//412 448//412 464//412 465//412
f 447//413 446//413 462//413 463//413
f 445//414 444//414 460//414 461//414
f 443//415 442//415 458//415 459//415
f 441//416 440//416 456//416 457//416
f 439//417 438//417 454//417 455//417
f 450//418 449//418 465//418 466//418
f 448//419 447//419 463//419 464//419
f 446//420 445//420 461//420 462//420
f 460//421 459//421 474//421 475//421
f 458//422 457//422 472//422 473//422
f 456//423 455//423 470//423 471//423
f 467//424 466//424 481//424 482//424
f 454//425 453//425 468//425 469//425
f 465//426 464//426 479//426 480//426
f 463//427 462//427 477//427 478//427
f 461//428 460//428 475//428 476//428
f 459//429 458//429 473//429 474//429
f 457//430 456//430 471//430 472//430
f 455//431 454//431 469//431 470//431
f 466//432 465//432 480//432 481//432
f 464//433 463//433 478//433 479//433
f 462//434 461//434 476//434 477//434
f 331//435 15//435 30//435
f 1//436 452//436 16//436
f 331//437 30//437 45//437
f 16//438 452//438 31//438
f 331//439 45//439 60//439
f 31//440 452//440 46//440
f 331//441 60//441 75//441
f 46//442 452//442 61//442
f 331//443 75//443 90//443
f 61//444 452//444 76//444
f 331//445 90//445 105//445
f 76//446 452//446 91//446
f 331//447 105//447 120//447
f 91//448 452//448 106//448
f 331//449 120//449 135//449
f 106//450 452//450 121//450
f 331//451 135//451 150//451
f 121//452 452//452 136//452
f 331//453 150//453 165//453
f 136//454 452//454 151//454
f 331//455 165//455 180//455
f 151//456 452//456 166//456
f 331//457 180//457 195//457
f 166//458 452//458 181//458
f 331//459 195//459 210//459
f 181//460 452//460 196//460
f 331//461 210//461 225//461
f 196//462 452//462 211//462
f 331//463 225//463 240//463
f 211//464 452//464 226//464
f 331//465 240//465 255//465
f 226//466 452//466 241//466
f 331//467 255//467 270//467
f 241//468 452//468 256//468
f 331//469 270//469 285//469
f 256//470 452//470 271//470
f 331//471 285//471 300//471
f 271//472 452//472 286//472
f 331//473 300//473 315//473
f 286//474 452//474 301//474
f 331//475 315//475 330//475
f 301//476 452//476 316//476
f 331//477 330//477 346//477
f 316//478 452//478 332//478
f 331//479 346//479 361//479
f 332//480 452//480 347//480
f 331//481 361//481 376//481
f 347//482 452//482 362//482
f 331//483 376//483 391//483
f 362//484 452//484 377//484
f 331//485 391//485 406//485
f 377//486 452//486 392//486
f 331//487 406//487 421//487
f 392//488 452//488 407//488
f 331//489 421//489 436//489
f 407//490 452//490 422//490
f 331//491 436//491 451//491
f 422//492 452//492 437//492
f 331//493 451//493 467//493
f 437//494 452//494 453//494
f 331//495 467//495 482//495
f 453//496 452//496 468//496
f 475//497 474//497 7//497 8//497
f 473//498 472//498 5//498 6//498
f 471//499 470//499 3//499 4//499
f 482//500 481//500 14//500 15//500
f 469//501 468//501 1//501 2//501
f 480//502 479//502 12//502 13//502
f 478//503 477//503 10//503 11//503
f 476//504 475//504 8//504 9//504
f 474//505 473//505 6//505 7//505
f 472//506 471//506 4//506 5//506
f 331//507 482//507 15//507
f 470//508 469//508 2//508 3//508
f 481//509 480//509 13//509 14//509
f 468//510 452//510 1//510
f 479//511 478//511 11//511 12//511
f 477//512 476//512 9//512 10//512')


JaviCervera(Posted 2015) [#16]
Ok, the repository has been updated with a fix for that bug. Thanks for pointing it out.


julesd(Posted 2015) [#17]
How do you use the meshtool?


JaviCervera(Posted 2015) [#18]
You use it from the command line. If you run it without arguments, will get a message with information on how to use it. Basically, you run "meshtool filename", and it will export a file with the same name, but .msh.json extension, which can be loaded in Vortex.

It uses the Assimp library, so you can load any of the model formats supported by this library: http://assimp.sourceforge.net/main_features_formats.html


Sammy(Posted 2015) [#19]
Looks quite interesting. How long did it take you to write?


JaviCervera(Posted 2015) [#20]
About two weeks, but this is not the first 3D engine that I write, and the current feature list is fairly simple.


Sammy(Posted 2015) [#21]
It's certainly does not look like just two weeks work, well done!


julesd(Posted 2015) [#22]
Hey is this engine dead already, or is it still being worked on?


JaviCervera(Posted 2015) [#23]
I am porting it to C++, thinking about making it compatible with Monkey2 and BlitzMax. I will maintain both versions, Monkey and C++, in sync, as long as Monkey1 stays relevant.

One of the advantages is that I can make a visual mesh converter instead of the command line one, using MaxGUI.


julesd(Posted 2015) [#24]
Awesome, and thank you for this.

Making it compatible with Monkey2 I think should be for sure, since it is a
newer language, plus I believe it will be 64 bit as well.


JaviCervera(Posted 2015) [#25]
As I said in a previous post, an upcoming update to the engine won't use the command line meshtool, and will instead have a GUI-based one written in BlitzMax (using the C++ port of Vortex). Here's a quick look at what I am working on (very WIP):




Xaron(Posted 2015) [#26]
This looks awesome! Thanks for publishing! Please keep it going!


JaviCervera(Posted 2015) [#27]
Version 1.1 released!. You can access the Github repository here:

https://github.com/JaviCervera/vortex

Or go straight to this release and download the binaries:

https://github.com/JaviCervera/vortex/releases/tag/v1.1

The list of changes:
- Now Vortex supports changing handedness. To do that, you can write this at the beginning of your program:

Import vortex.src.handedness
#VORTEX_HANDEDNESS=Mode

Where Mode can be one of:
VORTEX_LH: Left handed coordinate system (the default now)
VORTEX_RH_Y: Right handed coordinate system, with Y as up vector
VORTEX_RH_Z: Right handed coordinate system, with Z as up vector (the default in previous versions of Vortex)

Left handed system uses clockwise order for rotations and triangle winding, and maps textures from the top left to the bottom right.
Right handed systems use counter clockwise order for rotations and triangle winding, and maps textures from the bottom left to the top right.

- Possibility to switch the vertical axis of screen coordinates for 2D. Now the default is that Y increases downwards (opposite from previous versions). To select the screen coordinates mode, write this at the beginning of your program:

Import vortex.src.config
#VORTEX_SCREENCOORDS=Mode

Where Mode can be one of:
VORTEX_YDOWN: Y goes down (default)
VORTEX_YUP: Y goes up (the default in previous versions of Vortex)

- Added procedural API. Despite differences in implementation on the Object Oriented layer, the procedural API should offer the same functions as a future implementation of Vortex in C++

- Added Vortex_GetAPIVersion and Vortex_GetShadingVersion

- Support for JSON meshes and fonts replaced by XML versions

- Meshtool replaced by Irrlicht-based version

- Fonttool and meshtool are now build from a .bat file (requires TDM-GCC-32 on Windows)

- Removed animation sequences from the engine. Now animations are a simple linear of keyframes, and you decide the first and last frame for the animation. This helps keeping Vortex a bit simpler, and it is not hard to add sequence support on a higher level engine

- Several bug fixes


Enjoy and Merry Xmas to all of you :)!


Sammy(Posted 2015) [#28]
Well done Javi, hopefully this will be converted to Monkey2 when it's out of beta? A 3D engine would give me a reason to be more interested Monkey2 TBH.


JaviCervera(Posted 2015) [#29]
I already have a C++ version done (although I have not yet ported the changes made in v1.1) that I will make public when Monkey2 is mature enough.


Sammy(Posted 2015) [#30]
Good man, thanks for your hard work here!


GarBenjamin(Posted 2016) [#31]
Just this past weekend I decided to learn OpenGL and write a 3D graphics system in C#.Net using OpenTK. However, if you've already built a 3D rendering and asset loading system for Monkey X then I definitely will check this out this week.

I didn't even realize we could actually write OpenGL inside Monkey X but if I understand your posts correctly we can and that is what you did?


GarBenjamin(Posted 2016) [#32]
It doesn't run at all for me. At least trying the test program doesn't. Blows up on Vortex_Init and commenting that out on the next Vortext_whatever function.
I copied the stuff over to my monkeyX folder then did a module update and help rebuild in Jungle.

I am guessing I didn't put things in the right place or something. This is something I wish folks would do when making modules for Monkey X.

Most of the people who have been using it for years I am sure know the ins and outs but for someone who has just got into it recently such as myself I have no idea what to do with these modules, where to put the files and so forth. Seems to require an almost inner working of the MonkeyX system in a sense to be able to use them. Be really cool if they were just plug n play. Failing that just a simple instructions.txt file that explains what exactly to do with the stuff.

This is not really your fault. I have ran into it with every module I tried to use. Got some to work but cannot remember what I actually did now. lol


Gerry Quinn(Posted 2016) [#33]
By default, you just copy them into the modules_ext folder. See for example Angelfont, which comes with Monkey (maybe that goes in the modules folder, the only difference is that modules_ext is supposed to be for third party modules).

I haven't tried Vortex yet, may take a look at it later.


GarBenjamin(Posted 2016) [#34]
Hey thanks! I didn't even know there was/could be a modules_ext folder. I will check and create it if needed then copy Votex inside and see if that works.


Beaker(Posted 2016) [#35]
Hey. I really like Vortex, but I'm having some issues with black fringing on alpha textures (using HTML5). I'm not sure if this is a premultiplied alpha issue (sounds likely) and I've tried to fix this by fiddling with the blend code in the renderer module. Or is it a shader issue? Any pointers would be appreciated.

Similar minib3d discussion here:
http://www.monkey-x.com/Community/posts.php?topic=5016&page=4


JaviCervera(Posted 2016) [#36]
Hi, Beaker! Looking at the screenshots on the other posts, it looks like the cause is texture filtering. When you have a texture with parts that are completely opaque and parts that are completely transparent, the areas where it changes from one to the other are interpolated, showing pixels that are partially transparent. Disabling filtering when loading these textures should fix the issue. You can do it by specifying FILTER_NONE when loading the texture with Texture_Cache.


Carlo(Posted 2016) [#37]
Help for installer instruction

Thanks

Carlo


Leo Santos(Posted 2016) [#38]
I had never heard of this module until now!
Really cool, you should add it to Monkey's module registry.

Thanks!


JaviCervera(Posted 2016) [#39]
@Carlo:
You must clone the repository in a "vortex" folder inside the "modules_ext" directory of MonkeyX. If you don't want to deal with Git directly, you can also download one of the binary releases and unzip it into that same directory. After that, you have to go to the "Help / Rebuild Help" option menu in the IDE, and documentation for the Vortex module will appear on the docs.

@Leo Santos:
Thank you very much for your interest! I'll contact support to get the module added :)

I have uploaded a new v1.2 release with the latest changes, and have separated the repository into two branches: vortex1 and vortex2. Vortex1 is te default branch, and minor improvements will go there. Vortex2 is a very work-in-progress branch where I will upload much bigger changes that will be part of the second major release. The API is not compatible at all with Monkey1 (is lower level, which will make it easier to add several optimization to the rendering pipeline), and has a bunch of new features, like skinned animations, cube mapping, normal mapping, and more stuff to come.

By now, I recommend to stick with Vortex1, since the API is more unlikely to change, and wait until an official v2.0 is released.


Leo Santos(Posted 2016) [#40]
Played with this a little bit and managed to get a simple cube out of Maya and spinning in Monkey! :-)
What's the best way to export materials and textures? Exporting as .OBJ did not seem to carry any material information, and the converter did not like .FBX. Should I try a different format that works with the converter?

Edit: I got materials working out of Blender. Anyone had success getting it out of Maya? Or maybe there's a better format than .obj? Here's the result from Blender, in all its HTML5 glory: https://dl.dropboxusercontent.com/u/446189/MeshTest/MonkeyGame.html

Thanks!


JaviCervera(Posted 2016) [#41]
Nice! Here's another demo, showcasing the normal & environment mapping that will be available on Vortex2:

https://dl.dropboxusercontent.com/u/502828/vortex2_normal/index.html


outsider(Posted 2016) [#42]
There is some problem

Chrome 50.0.2661.102 m:
"Error: ERROR: too many uniforms"


JaviCervera(Posted 2016) [#43]
Oh, didn't try it with Chrome. It works on Firefox. The uniforms should exceed the available number, which should at least be 1024, but maybe the Chrome implementation of WebGL is not standards-compliant. I will reduce the number of bones supported, so that would get rid of several uniforms.


ImmutableOctet(SKNG)(Posted 2016) [#44]
@JaviCervera: Works here using Opera Developer V39 (Chromium based) as well as Google Chrome 50.0.2661.102 (On Windows 10 x64). Outsider's problem may be related to his graphics drivers, rather than Chrome specifically. Although, if he's on Windows, Chrome uses ANGLE, so you can't blame OpenGL drivers.


JaviCervera(Posted 2016) [#45]
I have found that it is having rendering issues on OS X. Will fix it and upload a new version, although I don't think it is related with the problem Outsider reported.


Landon(Posted 2016) [#46]
This is really really cool. Great job!

Are there any plans for collision detection? or is this strictly a rendering lib?


outsider(Posted 2016) [#47]
@ImmutableOctet(SKNG): Thanks for info, yes, this is posible, cause I have quite old driver on my Clevo p150em, new one doesn't work :/

Any way, good job JaviCervera :)


JaviCervera(Posted 2016) [#48]
Ok, I have uploaded the demo to make it work on OS X, and have reduced the number of uniforms in the shader. It is the same link as before:

https://dl.dropboxusercontent.com/u/502828/vortex2_normal/index.html

Outsider, please check if it works for you now. It works for me on Chrome.


outsider(Posted 2016) [#49]
Unfortunately, still doesn't work, it must be a problem with my graphics drivers.


Landon(Posted 2016) [#50]
yea the error log says

Error: ERROR: too many uniforms


JaviCervera(Posted 2016) [#51]
Well, the shaders should support at least 1024 uniforms, but I seem to have ran into this problem:

https://bocoup.com/weblog/counting-uniforms-in-webgl

Despite of WebGL limit, many browsers on Windows only supports 256 uniform positions, because they implement GL support through ANGLE, translating to DX9 calls, which have this limitation. I'll see what I can do.


Landon(Posted 2016) [#52]
awe gawd microsoft.. just let us have dedicated OpenGL for browsers


ImmutableOctet(SKNG)(Posted 2016) [#53]
@Landon: Don't blame Microsoft for anything here, they didn't even make ANGLE. This is just a problem with the legacy implementation of ANGLE. This means this is a DirectX driver issue on the system's end, or ANGLE is otherwise unable to detect DX 10/11 support. I'm on Windows 10 using Chromium with AMD drivers for crying out loud, and I still don't have any issues.


Landon(Posted 2016) [#54]
ok gotcha, i didn't research it lol (obviously) ;P

Hmm yea i'm running windows 10, AMD Radeon GPU, it's giving me errors.

It's very much possible it's the older Laptop i'm stuck using currently (thanks to my kids :/) is not compatible with the min req directx for this.

by old i mean Moore's law has recycled a few times already old.


Carlo(Posted 2016) [#55]
the pc works
but in the mac 10.11.4 not works
Please help :)

Carlo


Carlo(Posted 2016) [#56]
the demo link work on Mac OS X


Ok, I have uploaded the demo to make it work on OS X, and have reduced the number of uniforms in the shader. It is the same link as before:
https://dl.dropboxusercontent.com/u/502828/vortex2_normal/index.html
Outsider, please check if it works for you now. It works for me on Chrome.


consty(Posted 2016) [#57]
Sincerely, there is no other alternative than Chrome. Especially if you really like the one-process-per-tab feature.


outsider(Posted 2016) [#58]
My apologies for the late response.

Unfortunately, still: Error: ERROR: too many uniforms

My video card: AMD Radeon HD 7970M switchable to Intel HD 4000, but Chrome is forced to use Radeon


Xaron(Posted 2016) [#59]
Looks pretty nice. Is that something that is still in development?


JaviCervera(Posted 2016) [#60]
There is a "vortex2" branch in the repository to to take a look at the in development 2.0 version, although API might change before the final 2.0. It contains things like normal and cube mapping, and skeletal animation. Progress is ongoing, but slow, since there are not many users and it's a hobby project. If Monkey2 gains any momentum, I will port this to it.


Xaron(Posted 2016) [#61]
Nice! I think about to move Unity back to the trash bin where it belongs to...


Ratchet(Posted 2016) [#62]
Is it possible to use mojo2 and vortex in the same project? I got a mojo2 app and want to display at least a mesh and rotate it.


JaviCervera(Posted 2016) [#63]
I haven't tried to combine Mojo + Vortex graphics. I only use Mojo for input / audio, etc, but it is likely to have issues.


Soap(Posted 2016) [#64]
It would be handy to have a version which can be used to draw meshes on top of a mojo/mojo2 scene.


Ratchet(Posted 2016) [#65]
I absolutely agree to Soap, that would be fantastic.


MikeHart(Posted 2016) [#66]
Do models still have to be converted to be used with Vortex?


JaviCervera(Posted 2016) [#67]
Ok, I'll take a look into it, and before I make the 2.0 reléase official, I'll make it compatible with Mojo2.

@MikeHart: Yes, you still need to export them with the command line tool. I might write a mesh viewer with the ability to export Vortex meshes tho, since I think it would be handy.


MikeHart(Posted 2016) [#68]
Why not load them directly? Why is the conversion needed?


JaviCervera(Posted 2016) [#69]
Because writing Monkey loaders for the most common 3D file formats is a lot of work, and I want to focus on other things. So I wrote a command line app in C++ that loads the most common formats and exports them to Vortex' native XML format.


MikeHart(Posted 2016) [#70]
ok, thanks for the clarification.