Page 1 of 1

[FTE]v5221 dynamic light issue

Posted: Wed Mar 28, 2018 9:12 pm
by toneddu2000
Hi guys,I noticed that in version n.5771, FTE has a brand new cvar dynamiclight_spawnstatic that works well (no performance differences with dynamiclight_add() though) but now dynamiclight_add flickers like hell, it's like it goes on and off every frame. Plus light brightness goes completely crazy

It's difficult to understand flickering with just an image(!) but trust me. The effect is very strong with low brightness lights
this is v5220
Image
this is v5221
Image

You could say: uhm..they're quite..they're the same!!
No, because the effect goes away when I switch to Windows snapshot tool to take the picture(alt + tab in fullscreen mode), in this case light seems normal

take a look instead when I use windowed mode with vid_fullscreen_standalone 0(that, for some reason, it doesn't work anymore when set in .cfgs)
Image
The issue is quite obvious: light it's overbright

This is an empty csqc-only project with just this minimum code

Code: Select all

entity testobj;
void CSQC_Init(float apilevel, string enginename, float engineversion)
{
	testobj = spawn();
	setorigin(testobj,[0,0,128]);
	precache_model("models/cube.iqm");
	setmodel(testobj,"models/cube.iqm");
	testobj.drawmask = MASK_ENGINE;
}
//
void CSQC_WorldLoaded(){}
noref float CSQC_ConsoleCommand(string cmd){return TRUE;}
float CSQC_InputEvent(float evtype, float scanx, float chary, float devid){return 0;}
void CSQC_Input_Frame(){}
//
void CSQC_UpdateView(float vwidth, float vheight, float notmenu)
{
	clearscene();
	setviewprop(VF_ORIGIN,[-400,0,400]);
	setviewprop(VF_ANGLES,[45,0,0]);
	setviewprop(VF_PERSPECTIVE,TRUE);
	setviewprop(VF_DRAWCROSSHAIR,FALSE);
	dynamiclight_add([-300,0,400],1000,[0.1,0.1,0.1],0,"",0);
	addentities(MASK_ENGINE);
	renderscene();
}
This is the shader. I also tried to remove the program directive but light issue remains

Code: Select all

cubemat
{
	program defaultwall
	diffusemap textures/env/red.tga
}
Soo weird that effect goes away when another window takes control! :shock: Did anyone tried on Linux to see if same issue happens on X11?

Re: [FTE]v5221 dynamic light issue

Posted: Thu Mar 29, 2018 9:48 am
by toneddu2000
I modified code a little to let you test the issue better.

Code: Select all

entity testobj;
float ltest;
float dynlight;
void CSQC_Init(float apilevel, string enginename, float engineversion)
{
	dynlight = cvar("render_light_dynamic");
	testobj = spawn();
	setorigin(testobj,[0,0,128]);
	precache_model("models/cube.iqm");
	setmodel(testobj,"models/cube.iqm");
	testobj.drawmask = MASK_ENGINE;
	if(!dynlight){
		ltest = dynamiclight_spawnstatic([-300,0,400],1000,[0.1,0.1,0.1]);
	}
}
//
void CSQC_WorldLoaded(){}
noref float CSQC_ConsoleCommand(string cmd){return TRUE;}
float CSQC_InputEvent(float evtype, float scanx, float chary, float devid){return 0;}
void CSQC_Input_Frame(){}
//
void CSQC_UpdateView(float w, float h, float notmenu)
{
	clearscene();
	setviewprop(VF_ORIGIN,[-400,0,400]);
	setviewprop(VF_ANGLES,[45,0,0]);
	setviewprop(VF_PERSPECTIVE,TRUE);
	setviewprop(VF_DRAWCROSSHAIR,FALSE);
	if(dynlight){
		ltest = dynamiclight_add([-300,0,400],1000,[0.1,0.1,0.1],0,"",0);
	}
	addentities(MASK_ENGINE);
	renderscene();
	drawstring([10,10,0],strcat("dynlight: ",ftos(dynlight)),[10,10,0],[1,1,1],0.4,0);
}
Just set in default.cfg

Code: Select all

set render_light_dynamic 1
And then launch map, if cvar render_light_dynamic is set to 0, static light will be rendered and no flickering/overbright will occur, instead, setting that cvar to 1, only dynamic light will be rendered and it will flicker and do the overbright stuff

Re: [FTE]v5221 dynamic light issue

Posted: Fri Mar 30, 2018 7:22 am
by toneddu2000
thanks Spike, v5230 seems to have fixed the issue.
Really appreciated