Posted By: BoH_Havoc
ENABLE_TREE not working with view.material ? - 08/14/10 18:02
Hi,
i'm currently in the process of boosting my shadowmapping, refraction and reflection shaders and tried to clip away unneeded objects by using ENABLE_TREE and returning 1 in the material event.
So far, i couldn't get ENABLE_TREE to work with view.materials.
ENABLE_RENDER works fine, but in an older post you mentioned that using ENABLE_RENDER only gives a 75% performance boost, while ENABLE_TREE givs almost 100% (like NOFLAG1 does). So i'd rather use ENABLE_TREE instead of ENABLE_RENDER.
I also don't want to use NOFLAG1, so flag1 can be used for other things.
Am i trying to achieve something stupid here? Is ENABLE_TREE actually not working with view.materials due to a technical restriction?
When assigning the material directly to an entity, it's working just fine.
Here's my code:
I'm currently using NOFLAG1 as a workaround and it gives a nice boost for shadows. It would be nice if i could "port" my code to ENABLE_TREE
I'm using the latest A7 pro (also tried it with the A8 trial)
Thanks in advance! And sorry if this isn't a bug
i'm currently in the process of boosting my shadowmapping, refraction and reflection shaders and tried to clip away unneeded objects by using ENABLE_TREE and returning 1 in the material event.
So far, i couldn't get ENABLE_TREE to work with view.materials.
ENABLE_RENDER works fine, but in an older post you mentioned that using ENABLE_RENDER only gives a 75% performance boost, while ENABLE_TREE givs almost 100% (like NOFLAG1 does). So i'd rather use ENABLE_TREE instead of ENABLE_RENDER.
I also don't want to use NOFLAG1, so flag1 can be used for other things.
Am i trying to achieve something stupid here? Is ENABLE_TREE actually not working with view.materials due to a technical restriction?
When assigning the material directly to an entity, it's working just fine.
Here's my code:
Code:
#include <litec.h> #include <acknex.h> #include <default.c> void v_camera() { set(my,INVISIBLE); set(my,PASSABLE); while(1) { c_move(my,vector(key_force.y*50*time_step,-key_force.x*50*time_step,0),nullvector,IGNORE_PASSABLE); my.pan -= mickey.x; my.tilt -= mickey.y; vec_set(camera.x,my.x); vec_set(camera.pan,my.pan); wait(1); } } var mtl_dontRender_event() { return(1); } MATERIAL* mtl_dontRender = { flags = ENABLE_TREE; event = mtl_dontRender_event; } void main() { level_load(""); wait(3); you = ent_create(NULL,vector(0,310,746), v_camera); you.tilt = -90; you = ent_create(CUBE_MDL, vector(0,0,0), NULL); you = ent_create(CUBE_MDL, vector(0,100,0), NULL); you = ent_create(CUBE_MDL, vector(0,200,0), NULL); //this entity will not be rendered, works nicely you = ent_create(CUBE_MDL, vector(0,300,0), NULL); you.material = mtl_dontRender; you = ent_create(CUBE_MDL, vector(0,400,0), NULL); you = ent_create(CUBE_MDL, vector(0,500,0), NULL); you = ent_create(CUBE_MDL, vector(0,600,0), NULL); //create a second view which uses the dontRender material //this doesn't work VIEW* secondView; secondView = view_create(2); set(secondView,SHOW); set(secondView,NOCULL); secondView.size_x = screen_size.x/2; secondView.size_y = screen_size.y/2; secondView.material = mtl_dontRender; secondView.x = 0; secondView.y = 300; secondView.z = 760; secondView.tilt = -90; }
I'm currently using NOFLAG1 as a workaround and it gives a nice boost for shadows. It would be nice if i could "port" my code to ENABLE_TREE
I'm using the latest A7 pro (also tried it with the A8 trial)
Thanks in advance! And sorry if this isn't a bug