AGT' s water is good, bud not can set water collor , less reflections etc.
i simplify you watershader in C# (run) and then retype to VB6 .. shader is create (in log), bud nothing showing .. nothing
your program.cs
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using MTV3D65;
namespace Water {
static class Program {
static Viewport _viewport;
static TVCamera _camera;
static Settings _settings;
static readonly string PATH_BASE = Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf(@"\bin\"));
static readonly string PATH_MEDIA = PATH_BASE + @"\Textures\";
public static readonly string PATH_SHADERS = PATH_BASE + @"\Shaders\";
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
Initialize();
Mainloop();
}
static void Initialize() {
// Show an information getter
// Fetch the infos
// Do we want to continue?
if (infoGetter.HasQuit) return;
// Kill it
infoGetter = null;
// Init engine and viewport
_viewport = new Viewport();
Core.Initialize(_viewport, _settings);
Core.Engine.SetSearchDirectory(PATH_MEDIA);
// Init environment and water
_camera = new TVCamera();
Core.Engine.SetCamera(_camera);
_camera.SetPosition(0, 60, 0);
Water.InitWater();
}
static void InitEnvironment() {
}
static void Mainloop() {
bool keepLooping = true;
while (keepLooping) {
Application.DoEvents();
keepLooping = !Core.Inputs.IsKeyPressed(CONST_TV_KEY.TV_KEY_ESCAPE);
Core.Engine.Clear();
Water.RenderWater();
Core.Engine.RenderToScreen();
}
}
}
}
and water.cs (i need only this two "source codes

?"
using System;
using System.Collections.Generic;
using System.Text;
using MTV3D65;
namespace Water {
class Water {
// Height of the water plane
// Fix for reflection glitches where water hits the land
static TVShader _waterShader;
static TVRenderSurface _reflectRS;
static TVMesh _water;
public static void InitWater() {
// Load related textures
// Comment/uncomment the right texture depending on the method you use
Core.TexFact.LoadVolumeTexture(@"Water\VolumeNormalMap.dds", "WaterVolume", CONST_TV_COLORKEY.TV_COLORKEY_USE_ALPHA_CHANNEL, true);
//Core.TexFact.LoadTexture(@"Water\\NormalMap_DXT5NM.dds", "WaterDual");
// Rendersurfaces init
_reflectRS = Core.Scene.CreateRenderSurface(384, 384, true, CONST_TV_RENDERSURFACEFORMAT.TV_TEXTUREFORMAT_X8R8G8B8);
// Water init
_water = Core.Scene.CreateMeshBuilder("Water");
// The texture tiling of the grid defines how tiled the waves will be
_water.AddFloorGrid(1, -5000, -5000, 5000, 5000, 32, 32, 50, 50, 50);
_water.SetTextureEx(0, _reflectRS.GetTexture());
// Comment/uncomment the right texture depending on the method you use
_water.SetTextureEx(1, Core.Globals.GetTex("WaterVolume"));
//_water.SetTextureEx(1, Core.Globals.GetTex("WaterDual"));
_waterShader = Core.Scene.CreateShader("WaterShader");
_waterShader.CreateFromEffectFile(Program.PATH_SHADERS + "WaterShader.fx");
// Set the shader parameters
_water.SetShader(_waterShader);
}
public static void RenderWater() {
_water.Render();
}
}
}
and i retype this code to VB6
create water and shader
Private Sub init_water()
TextureFactory.LoadVolumeTexture "c:\VolumeNormalMap.dds", "watertex", TV_COLORKEY_USE_ALPHA_CHANNEL, True
Set RenderSurf1 = Scene.CreateRenderSurface(384, 384, True, TV_TEXTUREFORMAT_X8R8G8B8)
Set WaterMesh = Scene.CreateMeshBuilder
WaterMesh.AddFloorGrid 1, -5000, -5000, 5000, 5000, 32, 32, 50, 100, 50
WaterMesh.SetTextureEx 0, RenderSurf1.GetTexture()
WaterMesh.SetTextureEx 1, GetTex("watertex")
Set shader = Scene.CreateShader("shader")
shader.CreateFromEffectFile "c:\WaterShader.fx"
WaterMesh.SetShader GetShader("shader")
End Sub
main loop
Private Sub Main_Loop()
Do
DoEvents
Check_Movement
TV3D.Clear
WaterMesh.Render
TV3D.RenderToScreen
Loop Until DoLoop = False
' We ask to quit.
Main_Quit
End Sub
bud when run : nothing showing .... only black

i can post here my source code if it helps.