Hi Grimber, thank you for responding.
I didn't think I had any semi-transparency in my image, just the alpha channel and opaque leaves. Here's the tga texture itself (archived):
http://mysite.verizon.net/vze3f978/wlntleaf.rarHere are copies of what I have in my script files:
GL-Main.wdl (my main level file):
////////////////////////////////////////////////////////////////////////
// A6 "Walk Thru" Project wdl:
// Created by WED.
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
// The PATH keyword gives directories where template files can be found.
path "C:\\Program Files\\GStudio6\\template_6"; // Path to A6 templates directory
path "C:\\Program Files\\GStudio6\\template_6\\code"; // Path to A6 template code subdirectory
path "C:\\Program Files\\GStudio6\\template_6\\images"; // Path to A6 template image subdirectory
path "C:\\Program Files\\GStudio6\\template_6\\sounds"; // Path to A6 template sound subdirectory
path "C:\\Program Files\\GStudio6\\template_6\\models"; // Path to A6 template model subdirectory
/////////////////////////////////////////////////////////////////
// Filename of the starting level.
string level_str = <GL-Main.WMB>; // give file names in angular brackets
////////////////////////////////////////////////////////////////////////////
// Included files
include <gid01.wdl>; // global ids
include <display00.wdl>; // basic display settings
include <cameraTarget.wdl>;
include <miscInput01.wdl>;
include <cameraSelect.wdl>;
include <camera1stPerson01.wdl>;
include <tree1.wdl>;
include <camera3rd01.wdl>;
/////////////////////////////////////////////////////////////////
// Desc: The main() function is started at game start
function main()
{
// set some common flags and variables
// freeze all entity functions
freeze_mode = 1;
// no level has been loaded yet...
gid01_level_state = gid01_level_not_loaded;
// entry: Warning Level (0,1, or 2)
// entry_help: Sets sensitivity to warnings (0 = none, 1 = some, 2 = all).
warn_level = 2; // announce bad texture sizes and bad wdl code
// entry: Starting Mouse Mode (0, 1, or 2)
mouse_mode = 0;
// wait 3 frames (for triple buffering) until it is flipped to the foreground
wait(3);
// now load the level
level_load(level_str);
wait(2); // let level load
// level should be loaded at this point...
gid01_level_state = gid01_level_loaded;
//+++ load starting values
// un-freeze the game
freeze_mode = 0;
// save start of game here
wait(6); // allow time for functions that wait for "gid01_level_loaded" to load
file_delete("start0.SAV"); // remove any old savefile
wait(1);
if( game_save("start",0,SV_ALL) <= 0)
{
diag("\nWARNING! main - Cannot save 'start' of level (ignore on restarts).");
}
else
{
diag("\nWDL: main - Game 'start' saved.");
}
// main game loop
while(1)
{
if(gid01_level_state != gid01_level_loaded)
{
freeze_mode = 1; // pause the game
while(gid01_level_state != gid01_level_loaded) { wait(1); }
freeze_mode = 0; // resume the game
}
wait(1);
}
}
// Desc: this is the function used to restart the game.
function main_restart_game()
{
// wait 3 frames (for triple buffering) until it is flipped to the foreground
wait(3);
// freeze the game
freeze_mode = 1;
if( game_load("start",0) <= 0)
{
diag("\nWARNING! main_restart_game - Cannot load 'start' of level.");
}
else
{
diag("\nWDL: main_restart_game - Game 'start' loaded");
}
// un-freeze the game
freeze_mode = 0;
}
// Desc: this is the function used to quit the game.
function main_quit()
{
//+++ // save global skills & strings
exit;
}
/////////////////////////////////////////////////////////////////
// The following definitions are for the pro edition window composer
// to define the start and exit window of the application.
WINDOW WINSTART
{
TITLE "3D GameStudio";
SIZE 480,320;
MODE IMAGE; //STANDARD;
BG_COLOR RGB(240,240,240);
FRAME FTYP1,0,0,480,320;
// BUTTON BUTTON_START,SYS_DEFAULT,"Start",400,288,72,24;
BUTTON BUTTON_QUIT,SYS_DEFAULT,"Abort",400,288,72,24;
TEXT_STDOUT "Arial",RGB(0,0,0),10,10,460,280;
}
/* no exit window at all..
WINDOW WINEND
{
TITLE "Finished";
SIZE 540,320;
MODE STANDARD;
BG_COLOR RGB(0,0,0);
TEXT_STDOUT "",RGB(255,40,40),10,20,520,270;
SET FONT "",RGB(0,255,255);
TEXT "Any key to exit",10,270;
}*/
/////////////////////////////////////////////////////////////////
//INCLUDE <debug.wdl>;
And my tga tree sorting file, tree1.wdl:
material right_alpha_mat
{
effect =
"
technique right_alpha1
{
pass p0 {zWriteEnable=true; alphaTestEnable=true;}
}
";
}
action right_alpha_acc
{
my.material = right_alpha_mat;
my.dynamic = off;
}
And here's a screenshot of what the trees end up looking like (in preview mode):
You can see in the center how the back leaves are showing in front of the enarest leaves.
If you or anyone else can spot what I'm doing wrong, I'd be grateful.