Author Topic: Tron Light Cycle  (Read 11462 times)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Tron Light Cycle
« on: January 15, 2018, 10:51:15 am »
Mike

Here is the "Tron Light Cycle" downloaded from Free 3D, that i started with.

The only thing i changed into this one, was to split back the original meshes to match the mtl TGA textures.
« Last Edit: January 15, 2018, 02:36:43 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: Tron Light Cycle
« Reply #1 on: January 15, 2018, 06:06:25 pm »
Thanks Patrice,

Haha no, it doesn't look very impressive now; too low-poly indeed, isn't it?

BTW next time you come across an .LWS or .LWO please note: LightWave does not have a decent OBJ exporter. It fuses all the meshes into one huge default material though it exports the .MTL file all right. Note also your .MTL isn't original; it differs from the one exported by LightWave.

But LightWave can also export 3DS, FBX, COLLADA, and VRML97 files that go well with 3DS Max that exports its own .OBJ files very nicely. Be aware that I now own a LightWave 2015 and a 3DS Max 2015. :)

Here are a couple of draft/preview renders made in my LightWave. Hope they can help you out in your remodeling effort.
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: Tron Light Cycle
« Reply #2 on: January 16, 2018, 08:21:27 pm »
My reworked candidate version...

With rotating wheel illusion, while in demo mode.



« Last Edit: January 16, 2018, 08:32:24 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: Tron Light Cycle
« Reply #3 on: January 16, 2018, 08:41:46 pm »
Forget to say that for me, it is still a low polygon model, even if looks much more crisp than the original.  8)
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: Tron Light Cycle
« Reply #4 on: January 16, 2018, 09:02:23 pm »
Patrice,

It looks stunningly awesome even at this WIP stage! Can't wait for the final release! :D


P.S. The wheels are an absolute killer!!!  8)

P.P.S. They are hypnotically viral!!! :D
« Last Edit: January 16, 2018, 09:19:11 pm by Michael Lobko-Lobanovsky »
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: Tron Light Cycle
« Reply #5 on: January 16, 2018, 09:33:07 pm »
I must say that i am already very pleased with that WIP, may be it will become the final version afterwards. :D
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: Tron Light Cycle
« Reply #6 on: January 16, 2018, 09:40:12 pm »
Nah. We are going to have true volumetric glow post-processing in our renderers one day. And that's gonna be a reason for you to come back to this model and improve it yet further to perfection.  :D
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: Tron Light Cycle
« Reply #7 on: January 16, 2018, 09:54:04 pm »
I am very pleased to see that you are back with me, that gives me more motivation  ;D
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: Tron Light Cycle
« Reply #8 on: January 16, 2018, 10:33:42 pm »
I've been enjoying every minute we spent on this project together with you ever since we started, my friend! :)
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: Tron Light Cycle
« Reply #9 on: January 19, 2018, 11:41:10 am »
Here is the latest TRON model, including the c4d R17 version i have used to rework all the meshes.

The mtl file has already all the light settings meta, however without the color properties that it is up to you to customize to match your preference.

To be used, of course, with OR version 2.00 ;)

This {low} polygon model is great to check with the C++ project while in debug mode.
« Last Edit: January 19, 2018, 11:47:13 am by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: Tron Light Cycle
« Reply #10 on: January 19, 2018, 02:02:38 pm »
Thanks Patrice,

Nice work! :)  Still looking forward to the final release...

-- There seems to be some kind of slight z-buffer fighting at certain angles and distances on the front side of helmet's visor. Or is it just the effect of "reflective" texturing?
-- Why there are no protector grooves or texture on the tires?
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: Tron Light Cycle
« Reply #11 on: January 20, 2018, 08:13:34 pm »
Mike--

Here is a WIP project, to check with the future spherical billboard.

big_flare.png should always stay above and in front of logo.png.

Also, as long as we use a quad, it would be nice to handle rectangular mesh without any square-fit stretching (just like the wallpaper background).

C4D_project.png shows you how the meshes have been put horizontally in front of the cycle, with the star flare being put slightly above the tron logo.

Note: I have added in the C++ source code a few missing predefined color constants...




« Last Edit: January 20, 2018, 08:49:33 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: Tron Light Cycle
« Reply #12 on: January 21, 2018, 01:22:25 am »
Here is a WIP project, to check with the future spherical billboard.

big_flare.png should always stay above and in front of logo.png.

Thank you, Patrice. I hope it will stay there -- some day.

Quote
Also, as long as we use a quad, it would be nice to handle rectangular mesh without any square-fit stretching (just like the wallpaper background).

You will have to exert yourself, my friend, to see it happen.

Now I have a request. I do not understand why ObjReader's camera behaves so weird with billboards. In fact, it refuses to support any type of billboarding and moreover, it fights against it going plain wild and crazy.

Apart from the three functions from your 3D chart bubble sprite sources that you have already published here, I need two more pieces of 3D chart camera code:

1. I need your exact 3D chart render routine -- the analog to gl_DrawScene() in the ObjReader sources. All of it without any abridgments or ommissions. I must know 100% exactly in what state OpenGL is when it draws the bubbles; if it's still in a LoadIdentity(), MODELVIEW and/or PROJECTION state, before/in the process of/after the drawing of wallpaper and other geometry, if that other geometry is already translated/rotated somehow or not yet and if yes then using pure OpenGL or rather your obscure GDImage magic, etc. etc. etc.

2. I need an abstract from your 3D chart message handling routine -- the analog to ProcessMouseInput() in the ObjReader sources in what concerns the handling of WM_LBUTTONDOWN/WM_RBUTTONDOWN/WM_MBUTTONDOWN/WM_MOUSEWHEEL and the entire WM_MOUSEMOVE. In fact, all parts that modify or affect in any way the rotation angles and/or translation distances, including possible transformations in what may be the analogs to ObjReader's Mobj_normalize(), Mobj_scale() and similar.

3. I need you absolute willingness to co-operate and advise me openly and thoroughly on all other matters that may arise when I study the sources as per items 1 and 2 above. I really wouldn't like having to make blind guesses or reverse engineer your other products when writing the ObjReader code for you.

Quote
C4D_project.png shows you how the meshes have been put horizontally in front of the cycle, with the star flare being put slightly above the tron logo.

No! Billboards -- cylindrical or spherical -- should never ever be put on the ground! Their centers must always exist in the model at their exact XZ positions and Y heights where you intend to be seeing them at view time!


( If someone's camera differs from everybody else's cameras in just one pixel, degree, radian, or degree of a radian -- just as little as your FPS counter differs from mine -- then it's a lost case and the project is f*cked up beyond all repair. That someone ends up in hell with a totally custom camera that can't utilize a single bit of the entire knowledge base from the net. >:( )
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: Tron Light Cycle
« Reply #13 on: January 21, 2018, 10:43:28 am »
I shall make a  simplified version of the 3d chart project with everything inside of the code (no GDImage call).
For tutorial purpose, and also to remember myself how i did it  8)
I shall also reset the correct orientation into c4d (indeed it was to test something else i had in mind) simulating a cheap rotating solar system  :o

Don't be upset, we will solve this problem, so far the main difference is the origin of the rotation center that is is not in world coordinates into 3d chart, but ranging from positive 0 to 100 for the X,Y coordinates, and negative 0 to -100 for Z.
This is by design, to help the display of numeric chart values, would be interresting to see what happens if using world coordinates with it...


Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: Tron Light Cycle
« Reply #14 on: January 21, 2018, 12:19:27 pm »
Thank you very much, Patrice. In fact, I did sound a bit hysterical but it was because I'm spending unpardonably much time for such trivial things as billboards due to my inability to perform precise object-to-world transforms because of the model half-height displacement to better fit in the renderer viewport.

Your Tron promises to be a very attractive model. The face idea is a killer, and the implementation seems to be superb. :)

However, the face helped me trace one more latent bug. You probably noticed that the face looks warmer in PPL than in FFP. That's because the OpenGL driver uses an intrinsic shader to emulate the immediate-mode function calls that the star-like flare is drawn with. And its settings (transparent to the user) remain uninitialized affecting subsequent draw calls.

You can also notice the face going colder if you smoothly zoom in on the face with you middle button. As soon as our custom visibility clipper starts to discard the flare mesh because it is too close and low to fit into the view frustum, the face colors become darker and colder. The quick fix below cures that problem Probably, now you would want to make the face material colors a little warmer by hand in the .MAT file to compensate for the fix. :)

Code: [Select]
void Mobj_DrawUsingProgrammablePipeline(IN HWND hCheckList, IN long nSpecularMode, IN long nUseTexture) {

...................................................

doneBillboard: // ML 01-21-2018: immediate mode for billboards is emulated by the OpenGL driver with an intrinsic shader,
               // so our billboard epilogue should also include disabling client states even though we didn't enable them.
            glActiveTexture(GL_TEXTURE0);
            glBindTexture(GL_TEXTURE_2D, 0);
            glClientActiveTexture(GL_TEXTURE0);

            if (Mobj_hasNormals()) { glDisableClientState(GL_NORMAL_ARRAY); }

            if (Mobj_hasTextureCoords()) { glDisableClientState(GL_TEXTURE_COORD_ARRAY); }

            if (Mobj_hasPositions()) { glDisableClientState(GL_VERTEX_ARRAY); }

            if (pMaterial->isA2C) { glDisable(GL_SAMPLE_ALPHA_TO_COVERAGE_ARB); } // PAT: 01-07-2018
        }
    }

    glUseProgram(0);
    glDisable(GL_BLEND);
}
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)