Hey, I have a follow up question on this. My other game Paradox Vector seems to be experiencing the same issue with AMD cards. I am looking into possible ways to remedy this.

Right now i am using draw_line3d to render lines. The wireframe material also works, and is faster, but it ends up looking very bad because of some of it's limitations.

In lite-c, the wireframe shader seems to come down to these lines:

Code
MATERIAL* mtl_wireframe =
{
   effect = "technique { pass { Fillmode = Wireframe; } }";
   event = mtl_model_init;
}


This seems to be something built right into the engine itself, because I cannot find any "wireframe.fx" file that defines how it works.

Is there any way to write a shader (.fx file) that would draw the lines based on the same parameters as my script? And if so, do you think it might help resolve the problem?

I plan to try messing around with a shader script to see what I can come up with, but if anyone has any ideas, that would be great!

My existing script is as follows, and it is being called in the EVENT_FRAME for most objects:

Code
function draw_me(var my_blue, var my_green, var my_red, var my_alpha, var start_vec)
{
	VECTOR line_pos;
	var line_x = 0;// = start_vec;
	var vert_num = ent_status(my,1);
	
	for(line_x = start_vec;line_x < vert_num;line_x++)
	{
		vec_for_vertex(line_pos,my,line_x);
		
		if(line_x == start_vec)
		{
			draw_line3d(line_pos.x,NULL,my_alpha);
			draw_line3d(line_pos.x,vector(my_blue,my_green,my_red),my_alpha);
		}
		else if(line_x == vert_num)
		{
			vec_for_vertex(line_pos,my,start_vec);
			draw_line3d(line_pos.x,vector(my_blue,my_green,my_red),my_alpha);
		}
		else
		{
			draw_line3d(line_pos.x,vector(my_blue,my_green,my_red),my_alpha);
		}
	}	
}


Each model will provide its own colors, as will as starting vector when it calls this script - the script uses floating vectors (not attached to any triangle faces in the models) to draw the lines above the black surface faces of each model. Alpha is determined by the model's distance from the camera, as fog does not seem to work on 3d lines.