Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / BlitzTerrain

Author
Message
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Dec 2012 02:47
Obviously kaedroho knows best; however I do use BT2.

The native Detail Mapping commands in the 3D help file can do the trick; although I prefer using shaders; they give you more control and special effects.

kaedroho
16
Years of Service
User Offline
Joined: 21st Aug 2007
Location: Oxford,UK
Posted: 14th Dec 2012 11:31
Chris Tate,

I think WebGL is awesome. The only problem with it is you have to write pretty much everything. Theres no immediate mode drawing and you must write shaders even if you just want a single white triangle on the screen. But you can do pretty much any kind of graphics you can do in DBPro with it. Heres a great demo: http://lights.elliegoulding.com


JoeOh,

Theres only 1 detailmap support on BT2. You were probably reading up on Environment maps which are for creating maps of what type of environment each part of the terrain is. This is useful for footstep sounds mainly. I acctually developed environment mapping for doing multiple detailmaps. I just never got round to writing the shader for it!

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Dec 2012 14:38
Wow, I am so going to use that for web development. Can't believe it; I will be learning how to use that ASAP.

_Pauli_
AGK Developer
14
Years of Service
User Offline
Joined: 13th Aug 2009
Location: Germany
Posted: 14th Dec 2012 15:05 Edited at: 14th Dec 2012 15:10
Yeah, the flexibility and portability of JavaScript, HTML5 and WebGL is really inspiring. I've been interested in this stuff for a while now, even used some of it for my final thesis (to present architecture models online). Anyone interested in 3D for the web (without the need for plugins) should check out Three.js, it's very easy to handle and nice for cross-platform prototyping.
Stuff like this makes it obvious how outdated most of our beloved TGC technology really has become...

Back on topic:
Keep up the good work Kaedroho! I hope you manage to expand BlitzTerrain 3 to as many platforms as possible to really make the most out of your efforts. Your ideas and concepts sound great! Imagine you could offer highly optimized streaming terrain for the web...

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Dec 2012 15:37
Thanks Pauli.

And back to the topic for me aswell.

Kaedroho; when you get a chance could you give me a tip on how to convert a 3D editor terrain into a BT terrain. I will look into how to do set convert my 3D World Studio terrain into BT2; but would like to know what to consider in order to convert for BT3. Here is a screenshot of 3DWS terrains; which can save a heightmap, which is likely to be the key for accomplishing this. 3DWS also assigns multitextures. Let me know if you need more information about 3DWS terrains.



_Pauli_
AGK Developer
14
Years of Service
User Offline
Joined: 13th Aug 2009
Location: Germany
Posted: 14th Dec 2012 19:04
Are you trying to import your world into DBPro or DarkGDK?
If you're using DarkGDK you could try this 3DWS Importer and adjust it to use BlitzTerrain. Shouldn't be too hard I think...
Don't have a clue about DBPro though...

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Dec 2012 21:07
Thanks. I am using DBPRO (and Visual Basic)

I have the 3DWS terrains in DBPRO; I just need to get a heightmap from it and create a BT terrain with all the texture stages applied; in a way that it works in both the current and new versons.

Actually you gave me an idea to try to interpret that 3DWS parser into DBPRO or VisualBasic; my C++ knowledge is limited, but I should be able to figure it out. I'm just not sure what result I will get if I create a BT Terrain from a 3DWS heightmap; I'll give it a shot.

kaedroho
16
Years of Service
User Offline
Joined: 21st Aug 2007
Location: Oxford,UK
Posted: 18th Dec 2012 22:25
Just had a crazy idea on how to store vertex data.

Currently, the idea is to create lots of 256x256 vertex buffers called "regions". The reason why these are so small is because indices can only index up to 65536 vertices in each buffer.

I was thinking if it was possible to put vertex heights in a texture. This would mean that I can make a single vertex buffer that is loaded for all regions which only holds texture coordinates, saving space. Then the vertex shader looks up the height of the vertex based on the texture coordinates it finds in the vertex buffer and the heightmap which is stored as a texture.

By the looks of it, that idea is technically possible. It allows regions to be of any size you want. RTTMS commands will also be faster this way as texture updates are done on a 2 dimensional image rather than a single dimensional array (which it would need to upload much more data to update).

Just throwing that idea out there so someone has a chance to tell me that I'm living in some fairy land where all your dreams come true and bring me back to reality before I commit to implementing an idea which will not work! I'm hoping that person will never come though because I love this idea!

Brendy boy
18
Years of Service
User Offline
Joined: 17th Jul 2005
Location: Croatia
Posted: 18th Dec 2012 23:45
Quote: " was thinking if it was possible to put vertex heights in a texture."

it is, have a look at gpu clipmaps algorithm, it requires shader model 3 though

kaedroho
16
Years of Service
User Offline
Joined: 21st Aug 2007
Location: Oxford,UK
Posted: 19th Dec 2012 00:33 Edited at: 19th Dec 2012 00:48
Brendy boy, Thanks for the reply

Yep, I think this is definitely possible. The problem is as you have said, theres no guarantee that the end user will have a GPU capable of doing a vertex texture lookup. For that reason I won't be implementing this as the only method for storing height data. But if the performance/ram benefits are high enough, I might implement this as a secondary method for storing height data and have vertex buffers as a fall back.


One thing I find quite exciting is that if the terrain engine is reading height data from a texture, editing height maps can be hardware accelerated by rendering a brush image directly to the texture!

EDIT: Another crazy use for this feature. In HTML5, a video can be easily turned into a WebGL texture and updated on the fly! You can probably guess what that will lead to!

kaedroho
16
Years of Service
User Offline
Joined: 21st Aug 2007
Location: Oxford,UK
Posted: 19th Dec 2012 02:48
Great news! My plan worked!

http://turbodog.co.uk/jsttextures/


I've got heightmaps and textures working! I'm using the method as mentioned above.

The great thing about this is theres now only one vertex buffer and one index buffer for every piece of terrain. The vertex shader is responsible for handling LOD now. All that it needs to do is pass what part of the heightmap needs to be rendered at what LOD level you simply call the DrawElements function and it magically works!

This method would be amazing on RAM useage. Using this method, you would be able to squeeze an 8192x8192 terrain into just 128MB of RAM (that will run on a raspberry pi!!).

The above is rendering in WebGL which is more restricted than DirectX 9. This should run even better once ported to C++.

Also, the demo now runs in firefox!

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 20th Dec 2012 20:05
Excellent - presuming terrain streaming and detail on spherical terrains become that much more attainable (and smaller in memory)?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
kaedroho
16
Years of Service
User Offline
Joined: 21st Aug 2007
Location: Oxford,UK
Posted: 20th Dec 2012 20:27
Yep, thats correct. Both of those features would be easier to implement and smaller in memory.

Another thing is it could bind the terrain directly to a DBPro image and if you edit that image it will update on the terrain! And vice versa!

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 21st Dec 2012 00:07
The binding to image thing sounds great. You could use say ImageKit from SvenB to really play around with the terrain in realtime.

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Qqite
14
Years of Service
User Offline
Joined: 28th Feb 2010
Location: Florida, U.S.
Posted: 21st Dec 2012 09:45
Does anyone know how to get this working with GarkGDK2? The immediate installation instructions don't suffice.

Ventures of the worlds around us are limited only by our imagination.
Kezzla
15
Years of Service
User Offline
Joined: 21st Aug 2008
Location: Where beer does flow and men chunder
Posted: 23rd Dec 2012 05:57
Quote: "Another crazy use for this feature. In HTML5, a video can be easily turned into a WebGL texture and updated on the fly! You can probably guess what that will lead to!"

realistic 3d oceans?

you are on fire mate, great work!
cant wait for this.

JoeOh
15
Years of Service
User Offline
Joined: 25th Feb 2009
Location:
Posted: 24th Dec 2012 01:25
kaedroho, I have another question....

Let's say I have a flat blitzterrain loaded, and I use the BT function that raises the height of a small spot on the terrain (like in an editor would), will your BT plug-in automatically add vertices to that area as needed for terrain detail, or will it raise only existing vertecies?

Home is where my souped-up computer is...
kaedroho
16
Years of Service
User Offline
Joined: 21st Aug 2007
Location: Oxford,UK
Posted: 24th Dec 2012 10:42
Duffer and Kezzla, thanks!

Qqite,
Support for BT2 free has been added to DarkGDK 2.0. I'm not sure exactly how to get it working (I've never used DGDK2 before :S). But it should be the same as any other plugin.

JoeOh,

Terrains are divided up into a grid of regions (256x256 in size). If you create a terrain without setting a data source (eg, a heightmap). No regions will be created but it will still draw a flat terrain.

When you edit an area of terrain, BT3 will look at what region (or regions) you are editing. If any of them don't exist it will create new regions on the fly for you in the background.

By default, a terrain with no data source will be infinite in size but no RAM will be used until you start editing. There will be a command called BT SetTerrainBounds which lets you have a blank terrain of a specific size.


And Merry Christmas to everyone!

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 24th Dec 2012 16:22
@ Kaedroho,

You to - have a good one!

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 24th Dec 2012 17:00
This is really coming along well, wish I could use it for my current project.

I noticed that you had a discussion about generating documentation for your project a couple of pages back, and was wondering why you didn't just use doxygen for it? It allows you some serious flexibility when it comes to the output of your help files, and it's all in-source so that you don't have to keep an external file updated with all the changes that you just did to the source code. Maybe look into it for later?

Merry Christmas to you too!

kaedroho
16
Years of Service
User Offline
Joined: 21st Aug 2007
Location: Oxford,UK
Posted: 24th Dec 2012 20:23
Dar13,

The reason is that instead of automatically writing just the help files, I also want to automatically generate the interface code itself. I think the best way to do this is to create an XML file that describes all the functions and press a big fat go button and it produces all the code and help files from the xml.

I may be able to use doxygen for the help files part, but I haven't decided on that yet.

Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 25th Dec 2012 23:27
I see what you're doing now. Yeah I suppose your way would be best, though I probably wouldn't use XML as I hate that particular type of data.

I just use doxygen because it generates really nice inheritance and relationship graphs for classes and such, as well as outputting into either HTML or LaTEX. Of course, I haven't really dug into it as much as I should have.

JoeOh
15
Years of Service
User Offline
Joined: 25th Feb 2009
Location:
Posted: 27th Dec 2012 17:57
kaedroho, I've been reading up on the colour mapping for height mapping in BT2. What programs out there use the Red-Green values for determining height? And I assume the colour heightmapping value is calculated as (red+(255*green))?

Also, is it possible to convert a 24-bit grey scale map to the RG color map?

thanks again-

Home is where my souped-up computer is...
Juggernaut
12
Years of Service
User Offline
Joined: 12th Mar 2012
Location:
Posted: 27th Dec 2012 22:18
Hello,

What features will be included in BLITZTERRAIN 3 ?

Thanks,
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 11th Jan 2013 00:51
Hi, any latest news?

Adrian
20
Years of Service
User Offline
Joined: 11th Nov 2003
Location: My Living Room
Posted: 21st Jan 2013 23:44
Hi.
Just bought my copy
Any news about BT3?
kaedroho
16
Years of Service
User Offline
Joined: 21st Aug 2007
Location: Oxford,UK
Posted: 22nd Jan 2013 10:41 Edited at: 22nd Jan 2013 10:46
Hey everyone, sorry for disappearing on you, its been quite a busy month!

Juggernaut,

Heres some advantages of BT3 over BT2:

- Much better RAM useage
- (Hopefully..) Faster speed
- Better internal design (more maintainable, less bugs, easy to add new features)
- Better API (BT2 api has lots of weird things like the build loop which was only any use in BT1. Auto render disabled by default, etc)
- Streaming terrain
- Multithreaded design (spreads the load across multiple CPU cores)
- Morphing between different LOD levels
- Spherical terrain


Adrian,
Thanks for buying
BT3 will be available as a free upgrade for everyone who's brought BT2


Chris Tate and Adrian,
Work on BT3 is a bit slow at the moment. I've had lots of assignments and exams due this month (its the last month of the semester). I've been spending much of my free time working on those!

Arbrakan
13
Years of Service
User Offline
Joined: 10th Oct 2010
Location: Geneva
Posted: 26th Jan 2013 02:34
Can't wait for BT3

But BT2 still get very powerful.



Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 10th Mar 2013 20:00
@ kaedroho,

Hi there - any news on BT3?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
kaedroho
16
Years of Service
User Offline
Joined: 21st Aug 2007
Location: Oxford,UK
Posted: 11th Mar 2013 11:20
Work during feburary was slower than I hoped. However, progress is being made.

Watch this space: https://github.com/kaedroho/BlitzTerrain3

I've got a little wiki going on there, only 3 pages but I'll be writing up my notes on the design in there.

Also, I hope to start pushing up the first bits of code within the next couple of weeks.

The core modules will be pushed to that repository. Any code you see in there will be MIT licensed. Meaning that you can instantly start using it in commercial projects if you want (the first bits of code will probably be useless though). The DBPro wrapper will remain proprietary.

Apologies for lack of updates (again :S). I will have to admit that work was much slower during feburary than I had hoped. Progress is being made though.

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 11th Mar 2013 15:00
@ Kaedroho - not to worry - just really glad you are still pushing this along - will watch your wiki too...

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Weave
AGK Bronze Backer
17
Years of Service
User Offline
Joined: 26th Sep 2006
Location:
Posted: 24th Mar 2013 00:09
Hi, when I run my test level Blitz terrain objects no longer show after I upgraded to Win 8 with 6 core cpu, any advice on how to fix this? Admittedly its not the only feature gone(bloom/quad + shadows) but obviously Blitz terrain would be usefull....Thx
curse
11
Years of Service
User Offline
Joined: 5th Feb 2013
Location:
Posted: 24th Mar 2013 12:28
Hi guys,
I'm using BlitzTerrain (lite version, for Dark GDK) for an application and I am having some problems with the Evolved water shader. The result that I get I think it's the same as this post. Has anyone got the same issue?
The same implementation without BlitzTerrain works fine (even if the FPS are quite low, around 30). The implementation of the shader that I use is here and also here. Same issue.

Image of issue in attachment.

Thanks id advance.

Attachments

Login to view attachments
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 29th Mar 2013 08:30
Will I still be able to run BT2 with BT3 installed? Wondering if it is worth working on my BT2 applications.

kaedroho
16
Years of Service
User Offline
Joined: 21st Aug 2007
Location: Oxford,UK
Posted: 2nd Apr 2013 11:59 Edited at: 2nd Apr 2013 12:13
Weave,
*Insert curse words about Microsoft here*
This has happened before back when I was working on BT1 and Vista happened. Theres not a lot I can do about this as I currently don't have access to a Windows 8 machine. The only thing I can say for now is the general advise: Make sure your GPU drivers are up to date, make sure you have the latest version of DBPro/BT, etc, etc (But I'm guessing that you've done all that already!)

curse,
I have seen those sort of problems before. The problem is that BlitzTerrain uses a different rendering engine to DBPro and there are some incompatibilities with certian shaders.
I haven't got round to writing the DBPro renderer for BT3 yet (still messing around with GLES2 atm) but I will definitely look into getting it as compatible with DBPro as possible. Maybe I'll create 2 modes for the rendering engine: Fast mode and compatibility mode

Chris Tate,
Yep, function names in BT3 will not clash with BT2. You will also be able to have both DLLs installed at the same time

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 2nd Apr 2013 12:43
kaedroho - just got BT2 via TGC last night, will play with it shortly, I use both Win7 & Win8 always in x64 versions in case that helps...

Regarding Win 8 if you need testers, I am happy to help test anytime you need it...

As 3DWS is dead I decided it was time I played with my own terrain engine, and thought of BT2 with the upcoming BT3 I was more than keen

I plan to use it outside of GDK/DBPro as well, how does that work?

Sph!nx
15
Years of Service
User Offline
Joined: 3rd Dec 2008
Location: The Netherlands
Posted: 13th Apr 2013 14:30 Edited at: 13th Apr 2013 14:31
Must.. have... this...
Quote: "- Spherical terrain"


I've got BT2 so I'm Waiting with anticipation!

Regards Sph!nx
www.mental-image.net
Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 13th Apr 2013 18:47 Edited at: 13th Apr 2013 18:50
Mobiius raised some questions about getting some of my shaders working with Blitz Terrain:

terrain blending shaders with Blitz Terrain

Here's a demo using a simplified version of a shader written for the Evochron Mercenary series of games. This version allows you to blend and bump map four different textures: one for each of low, medium and high altitude, and a fourth for steep slopes.

Here are two sample screenshots:



Full demo using the trial version of BT attached.

Attachments

Login to view attachments
Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 13th Apr 2013 18:49
Screenshot for previous post.

Attachments

Login to view attachments
Flamertor
12
Years of Service
User Offline
Joined: 12th Oct 2011
Location:
Posted: 14th Apr 2013 17:54
Hi,

I was wondering if anyone know how to paint with a image instead of a colour?
Mobiius
Valued Member
21
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 24th Apr 2013 00:52
Hello, I'm having more shader related troubles and I don't know how to fix it. (Or even if it can be fixed)

If I apply Green Gandalf's (Exellent) terrain blend shader onto a BlitzTerrain object, the BT object stops culling the edges of sectors and they become visible when viewed from below.

This means that if you use evolveds water shader, you get a nasty grid effect and worse appearing on the water.

Below is a very simple video showing what I mean. (Lines from below, normal from above.)



Basically, how can I stop this from occurring? Is it a problem with BT? Can it be fixed? Is it a problem with the shader or the terrain?

I'll also post this into the blitzterrain thread in case Kaedroho's still lurking about to see if he has an answer.

I live for video games! (And beers, and football, and cars!)
See what I live for here: [url]http:\\www.TeamDefiant.co.uk[/url]
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 24th Apr 2013 03:45
Quote: "I was wondering if anyone know how to paint with a image instead of a colour? "


Paste the image onto the terrain colour map.

You can do that with image kit or you can use matrix1 render targets; or simply draw to bitmap Zero minus the image ID to draw on images using 2D commands with Matrix1 by setting a camera to the actual image.

Quote: "If I apply Green Gandalf's (Exellent) terrain blend shader onto a BlitzTerrain object, the BT object stops culling the edges of sectors and they become visible when viewed from below."


Is it necessary to allow the player to go below the terrain? If not, then don't worry about it.

Mobiius
Valued Member
21
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 24th Apr 2013 04:00
Quote: "Is it necessary to allow the player to go below the terrain? If not, then don't worry about it."

The reflection camera for the water shader needs to be underwater yes. If it were that simple I'd have fixed it. Lol

I live for video games! (And beers, and football, and cars!)
See what I live for here: [url]http:\\www.TeamDefiant.co.uk[/url]
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 24th Apr 2013 05:31
Don't let the reflection camera see under the terrain. Clip the reflection camera above the terrain.

Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 24th Apr 2013 16:19
Yes, that should fix it.
Mobiius
Valued Member
21
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 24th Apr 2013 17:26 Edited at: 24th Apr 2013 18:24
I've tried setting the clipping plain, but it's not doing what I want it to.

It's currently:


If I change it to:


The camera stops rotating as it should, and just stays there.

Either my understanding of the Clip command is flawed, (probable) or this isn't the solution, but I appreciate the help regardless.


*EDIT* I can disable the terrain's reflection, but that solution defeats the point of having reflective water.

I live for video games! (And beers, and football, and cars!)
See what I live for here: [url]http:\\www.TeamDefiant.co.uk[/url]
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 24th Apr 2013 19:46
I think that should be Minus 1 instead of 1.




Mobiius
Valued Member
21
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 24th Apr 2013 20:00
The -1 doesn't help.
When camera Angle X >= 0 I get reflections and the BT lines.
When camera Angle X <= 0 / I get an unmoved camera image.



I live for video games! (And beers, and football, and cars!)
See what I live for here: [url]http:\\www.TeamDefiant.co.uk[/url]
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 24th Apr 2013 22:47 Edited at: 24th Apr 2013 22:50
Hmm, well you are going to know better than me with the camera implementation; I am out of ideas. My brain can't figure out why the camera can see underneath the terrain, if it is above it; do you catch my drift?

Did you test the shader parameter? The set camera clip also has a clip shader mode and reflect mode; have you played around with these:
Quote: "ClipOnOff

Integer
A value of 0 means no clipping. World space clipping is 1 and 2, and shader clip space is 3 and 4. To apply a reflected view, use a value of 2 or 4.
"


Edit: I see Green Gandalf beat me to it

Mobiius
Valued Member
21
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 24th Apr 2013 23:17
Quote: "My brain can't figure out why the camera can see underneath the terrain, if it is above it; do you catch my drift?"

Camera 0 is what's on screen. It is above the water. The reflection image you see on the water is taken from a camera at the same location, but underwater so you can see upwards. (If camera 0 is at 200 px up, the reflection camera is at -200 px down.) It was this camera which was picking up the bad clipping, which I have now solved by setting the camera clip to mode 4. (Which I never knew existed!)

I live for video games! (And beers, and football, and cars!)
See what I live for here: [url]http:\\www.TeamDefiant.co.uk[/url]

Login to post a reply

Server time is: 2024-04-20 15:32:19
Your offset time is: 2024-04-20 15:32:19