Game Development Community

TGEA 1.7.1 Invisible water bug

by metalliandy · in Torque Game Engine Advanced · 06/14/2008 (4:17 am) · 15 replies

Hey all,

When i add a water block after creating a project with SetupNewProject.exe, the water is invisible.

You can watch a video of it here:-
http://www.metalliandy.com/TGEA/bugs/TGEA_1.7.1/tgea_1.71_waterbug.html

My DXDiag is here:-
http://www.metalliandy.com/DxDiag.txt

The console log is here:-
http://www.metalliandy.com/TGEA/bugs/TGEA_1.7.1/console.log

My machine specs. are:-

Windows XP Home SP3 (with all current updates applied)
AMD Athlon 64 X2 5600+ @ 2800 MHz (Liquid cooled)
2GB DDR2 PC2-6400 (2 x 1024 @ 400 MHz with 4-4-4-12 timings)
NVIDIA GeForce 8800 GTX
Asus M2N32-SLI Deluxe ( nVidia nForce 590 SLI)
Maxtor Sata 2 HDD C:\ (250GB OS and Install)
Samsung Sata 2 HDD D:\ (400GB Data)
DirectX Version 9.0c (June 2008)
ViewSonic VX912 - 19 inches 1280x1024@60Hz


Any ideas?

Thanks for looking :)


*Edit*
It seems that i cannot create visible water on any of the missions...they all show the same symptoms as shown in the video.

I have checked the textures and they all seem to be there :S

Does anyone else have a problem with this?

#1
06/19/2008 (7:25 am)
Sorry to bump this :S

Is anyone else having this problem?

I have tried re-installing TGEA but to no avail :(

Im starting to go crazy here...lol
#2
06/21/2008 (10:15 am)
We're now seeing this issue in 1.7.1, but its only when connecting to a Server, not when hosting locally
#3
06/21/2008 (10:34 am)
I have fixed this in our build -


waterBlock.cpp -

I just commented out:

NetConnection::smGhostAlwaysDone.notify( this, &WaterBlock::onGhostAlwaysDone );

and

NetConnection::smGhostAlwaysDone.remove( this, &WaterBlock::onGhostAlwaysDone );

which basic purpose is to setup the vertex and index buffers, but seem to not be firing and put the call back in the original place in unpackUpdate

for( U32 i=0; i<MAX_WAVES; i++ )
      {
         stream->read( &mWaveSpeed[i] );
         mathRead( *stream, &mWaveDir[i] );
         mathRead( *stream, &mWaveTexScale[i] );
      }
	  setupVBIB(); // JWF
   }

That fixed our issue with water not being rendered clientside, which obviously is tied to the notify not getting fired. So the real fix would be to see whats happening there, but this works for now
#4
06/21/2008 (11:22 am)
Thanks for the reply :)

When you are not running a server your water is normal right?

How Strange.

Which file did you modify?
#5
06/21/2008 (12:00 pm)
Yeh, hosting locally (listen server)/Singleplayer and water is fine.

Oh, sorry, thats waterblock.cpp
#6
06/21/2008 (1:01 pm)
Thanks for the reply :)
I will give it a go and post back my results.
#7
06/22/2008 (12:34 pm)
Hey Jeremiah,

I made the changes you suggested and did a successful recompile...Alas im still having the same problem.

Thanks for posting though! it was worth a try :)
#8
06/23/2008 (10:04 pm)
I too am having this problem. Doesn't matter what computer I try it on.
#9
06/24/2008 (6:09 am)
Hey Weston,

Thanks for the reply :)

Out of interest what are the system spec. of the computers you tried it on?.
Are there any similarities with our hardware or software?.
Im currently using the June 08 DirectX SDK + drivers and the 175.16 for my GPU.

Thanks again.
#10
06/24/2008 (10:45 am)
Sure, here are the specs...

- Computer 1
> 3.20 Ghz Intel Pentium 4 with Hyper Threading technology
> 1 Gb DDR2 RAM
> PCI Express ATI RADEON X600 SE - 128 MB - latest drivers
> Direct X SDK - June 2008
> Windows XP Professional Edition - Service Pack 2

- Computer 2
> 1.80 Ghz Intel Core 2 Duo
> 3 Gb DDR2 RAM
> PCI Express Nvidia GeForce 8500 GT - 512 MB - latest drivers
> Direct X SDK - June 2008
> Windows Vista Home Premium

- Computer 3
> 1.90 Ghz AMD Turion 64 X2 Mobile Technology TL-58
> 2 Gb DDR2 RAM
> Intigrated Nvidia GeForce 7100 - latest drivers
> Direct X SDK - March 2008
> Windows Vista Home Premium
#11
06/24/2008 (10:54 am)
Hey Weston,

Thanks for the reply :)

Ok, i see a few things that we have that are the same on some of the machines.

We are both using the same driver version and the DirectX June 08 SDK.
Maybe its something to do with the SDK or Drivers.
I just noticed that Nvidia have released a new driver yesterday..i will install that and see if it helps.
#12
06/24/2008 (11:41 am)
Well, computer number three is using a different version of the Direct X SDK but still has the problems. Also, computer number one is using ATI and still has the same problem.
#13
06/24/2008 (11:46 am)
Yeah i noticed that, but at this point i grasping for straws..lol
#14
06/24/2008 (8:07 pm)
The only other issue we ran into at some point was it seemed the TorqueScript arrays weren't always working, so surfMaterial[0], [1], etc weren't being always properly registered/replicated.

We changed the reference to surfMaterial in initpersistfields inthe waterblock to individual fields

// jwf: fixes torqueScript array problems by moving everything to individual values
   //addField( "surfMaterial", TypeString,  Offset( mSurfMatName, WaterBlock ), NUM_MAT_TYPES );
   addGroup("Texture");
   addField( "waterMaterial", TypeString,  Offset( mSurfMatName[0], WaterBlock ) );
   addField( "underwaterMaterial", TypeString,  Offset( mSurfMatName[1], WaterBlock ) );
   addField( "fogpassMaterial", TypeString,  Offset( mSurfMatName[2], WaterBlock ) );
   addField( "blendMaterial", TypeString,  Offset( mSurfMatName[3], WaterBlock ) );
   addField( "fallbackMaterial", TypeString, Offset( mSurfMatName[4], WaterBlock) );
   endGroup("Texture");

You'd obviously have to modify the mission and rename surfMaterial[0] to waterMaterial, etc... but it might be related.. hard to say
#15
06/25/2008 (2:39 pm)
Thanks for the reply :)

I will take a look and re-post my results.