www.tombraiderforums.com

Go Back   www.tombraiderforums.com > Tomb Raider Modding > Tomb Raider Level Editor > Software Development

Reply
 
Thread Tools
Old 02-06-15, 12:41   #1491
luke76
Hobbyist
 
Join Date: Dec 2008
Posts: 23
Default

Quote:
Originally Posted by Cochrane View Post
Not yet. If you see screenshots with non-standard outfits, that generally means there is a bug.
Thanks!
luke76 is offline   Reply With Quote
Old 04-06-15, 16:17   #1492
TeslaRus
Student
 
TeslaRus's Avatar
 
Join Date: Jan 2013
Posts: 195
Default stencil occ

Will it be good to add stencil test (based on the room frustum) to room rendering to delete from screen room overlapping bug (I.E. TR3 Area51 and TR5 map 1)?
I had add base functions for registration character collisions and ready for collision callbacks example code;
+ Lara near wall behavior was fixed (some tuning still required);
TeslaRus is offline   Reply With Quote
Old 05-06-15, 16:26   #1493
Mokono
Relic Hunter
 
Mokono's Avatar
 
Join Date: Apr 2009
Location: Perķ
Posts: 8,742
Default

Hello everyone!

It really moves me how much this has advanced .
I'm having a problem right now with the latest binaries:




The screenshots were taken with the win32-2015-05-20 version, but it's present in the 2015-05-31 version as well.

I'm playing with a 1680 x 1050 resolution.

Any ideas?
Thanks in advance.
Mokono is offline   Reply With Quote
Old 05-06-15, 18:43   #1494
TeslaRus
Student
 
TeslaRus's Avatar
 
Join Date: Jan 2013
Posts: 195
Default

Quote:
Originally Posted by Mokono View Post
Hello everyone!

It really moves me how much this has advanced .
I'm having a problem right now with the latest binaries:
...
Any ideas?
Thanks in advance.
It is not latest binaries, the code on github is latest. I update binary release on SF (but really latest binaries are builded yourself from latest source code from github repo). next there are link to latest buid: http://sourceforge.net/projects/open...ne.7z/download
TeslaRus is offline   Reply With Quote
Old 05-06-15, 19:28   #1495
vobject
Hobbyist
 
vobject's Avatar
 
Join Date: Nov 2013
Location: Germany
Posts: 40
Default

Quote:
Originally Posted by Cochrane View Post
Other changes:
  • A few fields have gotten alignas(16) modifiers. If you get a transformation matrix from bullet, this will use SSE internally. SSE requires that addresses for matrices start on 16-byte boundaries, which this modifier ensures. Otherwise the program will crash. This change requires C++11 to work.
  • If that modifier is a problem for someone, we can also use the respective GCC extension for all I care, as long as everyone uses GCC or Clang.
Sorry, I have to be the grinch again but for GCC4.6 (MinGW build server) I just replaced the fancy alignas keyword with the old ugly __attribute__ thing. I like C++1x a lot but I also want automated build. And neither Drone.io nor travis-ci provide Ubuntu 14.04 build machines (which could run MinGW with GCC 4.8.)

With this change, the automated builds should again be triggered with every commit to the repo.

Best regards
vobject is offline   Reply With Quote
Old 05-06-15, 22:16   #1496
Cochrane
Gold Contributor
 
Cochrane's Avatar
 
Join Date: Apr 2006
Location: Germany
Posts: 16,100
Default

Quote:
Originally Posted by vobject View Post
Sorry, I have to be the grinch again but for GCC4.6 (MinGW build server) I just replaced the fancy alignas keyword with the old ugly __attribute__ thing. I like C++1x a lot but I also want automated build. And neither Drone.io nor travis-ci provide Ubuntu 14.04 build machines (which could run MinGW with GCC 4.8.)

With this change, the automated builds should again be triggered with every commit to the repo.

Best regards
No problem, that's why I made that comment in the first place. Too bad about the lack of C++11 support, but the __attribute__ syntax is supported widely enough as well.

Quote:
Originally Posted by TeslaRus View Post
Will it be good to add stencil test (based on the room frustum) to room rendering to delete from screen room overlapping bug (I.E. TR3 Area51 and TR5 map 1)?
I had add base functions for registration character collisions and ready for collision callbacks example code;
+ Lara near wall behavior was fixed (some tuning still required);
I'm not sure about the stencil test. How would you use it?
__________________
GŁter auf die Bahn!
Cochrane is offline   Reply With Quote
Old 06-06-15, 20:52   #1497
TeslaRus
Student
 
TeslaRus's Avatar
 
Join Date: Jan 2013
Posts: 195
Default

Quote:
Originally Posted by Cochrane View Post
...I'm not sure about the stencil test. How would you use it?
Amm... The faster explanation is code on github. The stencil frustum test may be disabled every time in render.h str. 37 by changing
#define STENCIL_FRUSTUM 1
to
#define STENCIL_FRUSTUM 0
It is not panacea because that stencil test can't control transparency polygons in dynamic BSP tree, only in case of using OIT shaders for transparency polygons instead BSP tree;
TeslaRus is offline   Reply With Quote
Old 07-06-15, 07:27   #1498
Lwmte
Explorer
 
Lwmte's Avatar
 
Join Date: Aug 2010
Posts: 964
Default

I have a little surprise!


From the implementation point of view, ragdoll was very simple. Most time-consuming part was making all ragdoll parameters scriptable. But it really needs some customizations, as currently Lara can easily fall through the floor. Also, her hands are too rigid, I believe I misunderstood setLimit function which is used on constraints. Maybe someone can help me on that?

Note that ragdoll is visible ONLY in collision debug mode (r_coll console command), Lara mesh could only be drawn when ragdoll function is called twice from the console, and only in stop motion. I believe there is some bug in Lara drawing code.

P.S.: As I said, ragdoll functionality was made COMPLETELY scriptable, i. e. you can assign ragdoll script to ANY model in game (including enemies - imagine ragdoll T-Rex or Torso Boss! ), but hardest part is writing actual script, with pivot point coordinates, rotations, limits, etc.
Lwmte is offline   Reply With Quote
Old 07-06-15, 20:44   #1499
Cochrane
Gold Contributor
 
Cochrane's Avatar
 
Join Date: Apr 2006
Location: Germany
Posts: 16,100
Default

Big changes to drawing code (again): All meshes are now drawn using vertex arrays objects.

VAOs are a set of VBOs, element buffer and the pointers. You just bind one of them to set up all these attributes. In theory that's supposed to be faster. It isn't really (you can even try that out), but it is cleaner, and it's required to use them for everything in OpenGL 3.0.

VAOs are not supported on all hardware that can use OpenGL 2.0. Not sure why, it's a simple driver thing, but there you go. To work around that, all VAO code is encapsulated in the vertex_array and vertex_array_manager classes, which are virtual and delegate to either an implementation with VAOs, or one that sets up all pointers by hand, depending on what the GPU supports. The VAO one is better, but if you comment stuff out to test it, you'll see both provide the same performance overall.

As part of that, all shaders and VAOs now use custom vertex attributes. Again, this provides no benefit, it's just required for OpenGL 3. Well, there is one benefit: Skinning now happens entirely on the GPU. Look at Mesh_GenVBO and entity_skin.vsh for details, but it's fairly straightforward altogether.

Each mesh has two vertex array objects: One for normal faces and one for animated textures. The animated textures one has a separate buffer for texture coordinates, which is updated each frame. Parts of each vertex array object are dedicated for transparent faces.

Rendering of transparent polygons has changed: They are not rendered directly. Instead, each has a reference that tells the rendering code what vertex array object to use and what part of it. Lots of complicated code, not very interesting result. Works as well as before, including all bugs.

I'm gonna make a full write-up of how it works when I have more time. For now, please find bugs and ask questions.
__________________
GŁter auf die Bahn!
Cochrane is offline   Reply With Quote
Old 07-06-15, 23:47   #1500
Lwmte
Explorer
 
Lwmte's Avatar
 
Join Date: Aug 2010
Posts: 964
Default

Well, while I have no idea what VAOs are, I'm sure that it is a big advantage, if it moves us further to more contemporary OpenGL standards!

However, I have some problems with it. Certain levels stopped loading (for ex., TR3's Jungle), while some are still working (TR1 Caves, TR2 Wall). Also, I can't get to inventory, as engine immediately crashes. Same thing happens if Lara is picking something up. I suppose, the reason is broken item rendering code.

Also I have noticed that on certain angles, random rooms are now disappearing (like in TR1's Caves, try to look back to stairway from the room with two falling blocks and a wolf), as if they were wrongfully "clipped". Not sure if it's related to your VAO stuff or recent changes with frustums by TeslaRus.

Regarding skinning... I did a quick look at the code and saw you've integrated vertex weights, etc. to your structures. Does it mean we can now actually use unified entity mesh, leaving classic TR mesh structure as bone structure? I mean, is there a way to "merge" all 15 Lara meshes into one (sharing specific, presumably scripted, vertices) and use it as a single model?

I am asking because I always wondered how TR4/5 skinning is managed in OpenTomb, particularly hair model, and if it's possible to "force" skinning on old Lara models (at least hair) or not. You already mentioned that here (or on Github), it'll be interesting to see how it'll look like

Last edited by Lwmte; 07-06-15 at 23:48.
Lwmte is offline   Reply With Quote
Reply

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 03:18.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.