FTEQW - Models disappear with view angle change

Discuss programming topics for the various GPL'd game engine sources.
Post Reply
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

FTEQW - Models disappear with view angle change

Post by toneddu2000 »

Hi guys, I noticed that new version of FTEQW has a bug that makes models disappear when player turn around them keep looking at them(like if you strafe and keep the aim on an enemy). The model suddenly disappears, and, when you complete a 180°(approximately) circle around it, the model re-appears again! :shock: This bug doesn't not affect misc_model models in q3bsp maps but only model (no matter if .mdl, .md3 or iqm) spawned by code, like this:

Code: Select all

void example_map1()
{
	precache_model("models/test.iqm");
	setmodel(self,"models/test.iqm");
	setsize (self, VEC_HULL2_MIN, VEC_HULL2_MAX);
}
I noticed that revision #4831 works okay but, from #4832 and up, every release (even last one) contains this bug. So I downloaded EVERY release, compiled it and I discovered that the last one free from this bug is #4831. So I tried to restore every file changed from 4831 to 4832 but with no luck. I restored all these files

Code: Select all

changed	/trunk/engine/server/sv_send.c
changed	/trunk/engine/server/sv_sys_win.c
changed	/trunk/engine/client/cl_ui.c
changed	/trunk/plugins/plugin.c
changed	/trunk/engine/client/sys_linux.c
changed	/trunk/engine/client/cl_screen.c
changed	/trunk/engine/common/sys.h
changed	/trunk/engine/libs/mingw64-libs/libogg.a
changed	/trunk/engine/libs/mingw64-libs/jmorecfg.h
changed	/trunk/engine/client/sys_droid.c
changed	/trunk/plugins/plugin.h
changed	/trunk/engine/qclib/qcc_pr_comp.c
changed	/trunk/engine/common/vm.h
changed	/trunk/engine/libs/mingw64-libs/zlib.h
changed	/trunk/engine/client/cl_demo.c
changed	/trunk/engine/gl/gl_draw.c
changed	/trunk/engine/web/fs_web.c
changed	/trunk/engine/common/world.h
changed	/trunk/engine/client/m_multi.c
changed	/trunk/engine/libs/mingw64-libs/libjpeg.a
changed	/trunk/engine/client/view.c
changed	/trunk/engine/qclib/cmdlib.h
changed	/trunk/engine/dotnet2005/ftequake.vcproj
changed	/trunk/engine/gl/gl_shader.c
changed	/trunk/engine/common/fs_pak.c
added	/trunk/engine/common/com_phys_bullet.cpp
changed	/trunk/engine/server/svq3_game.c
changed	/trunk/engine/common/com_phys_ode.c
changed	/trunk/engine/common/gl_q2bsp.c
changed	/trunk/engine/server/sv_phys.c
changed	/trunk/engine/qclib/progsint.h
changed	/trunk/engine/server/sv_mvd.c
changed	/trunk/engine/qclib/qcc.h
changed	/trunk/engine/common/mathlib.c
changed	/trunk/engine/libs/mingw64-libs/libz.a
changed	/trunk/engine/qclib/qcc_cmdlib.c
changed	/trunk/engine/common/mathlib.h
changed	/trunk/engine/client/snd_al.c
changed	/trunk/engine/qclib/pr_exec.c
changed	/trunk/engine/gl/gl_vidcommon.c
changed	/trunk/engine/qclib/progslib.h
changed	/trunk/engine/common/fs_win32.c
changed	/trunk/engine/libs/mingw64-libs/jerror.h
changed	/trunk/engine/common/plugin.c
changed	/trunk/engine/libs/mingw64-libs/zutil.h
changed	/trunk/engine/web/sys_web.c
changed	/trunk/engine/gl/gl_model.h
changed	/trunk/engine/client/keys.c
changed	/trunk/engine/server/svq2_game.c
changed	/trunk/engine/gl/gl_rmain.c
changed	/trunk/engine/client/cl_input.c
changed	/trunk/engine/server/savegame.c
changed	/trunk/engine/qclib/pr_comp.h
changed	/trunk/engine/libs/mingw64-libs/zconf.h
changed	/trunk/engine/http/ftpserver.c
changed	/trunk/engine/client/client.h
changed	/trunk/engine/libs/mingw64-libs/libvorbis.a
changed	/trunk/engine/qclib/qccmain.c
changed	/trunk/engine/client/cl_parse.c
changed	/trunk/engine/client/cl_tent.c
changed	/trunk/engine/server/sv_ccmds.c
changed	/trunk/engine/client/pr_csqc.c
changed	/trunk/engine/client/clq2_ents.c
changed	/trunk/engine/client/sys_win.c
changed	/trunk/engine/qclib/qcc_pr_lex.c
changed	/trunk/engine/client/m_single.c
changed	/trunk/engine/gl/shader.h
changed	/trunk/engine/qclib/qccguistuff.c
changed	/trunk/engine/client/net_master.c
changed	/trunk/engine/libs/mingw64-libs/jversion.h
changed	/trunk/engine/common/common.c
changed	/trunk/engine/gl/glsupp.h
changed	/trunk/engine/dotnet2005/ftequake.sln
changed	/trunk/engine/common/cvar.c
changed	/trunk/engine/common/q3common.c
changed	/trunk/engine/client/renderer.c
changed	/trunk/engine/qclib/initlib.c
changed	/trunk/engine/server/progdefs.h
changed	/trunk/engine/common/common.h
changed	/trunk/engine/qclib/pr_multi.c
changed	/trunk/engine/client/cl_pred.c
changed	/trunk/engine/server/sv_ents.c
changed	/trunk/engine/common/cvar.h
changed	/trunk/engine/client/m_mp3.c
changed	/trunk/engine/common/qvm.c
changed	/trunk/engine/gl/r_bishaders.h
changed	/trunk/engine/libs/mingw64-libs/jpeglib.h
changed	/trunk/engine/client/sys_sdl.c
changed	/trunk/engine/client/image.c
changed	/trunk/engine/client/render.h
changed	/trunk/engine/server/sv_main.c
changed	/trunk/engine/client/r_2d.c
changed	/trunk/engine/libs/mingw64-libs/libvorbisfile.a
changed	/trunk/engine/client/cl_ents.c
changed	/trunk/engine/common/net_chan.c
changed	/trunk/engine/client/pr_skelobj.c
changed	/trunk/engine/client/textedit.c
changed	/trunk/fteqtv/protocol.h
changed	/trunk/engine/qclib/execloop.h
changed	/trunk/engine/client/cl_main.c
changed	/trunk/engine/client/cl_plugin.inc
changed	/trunk/engine/server/server.h
changed	/trunk/engine/server/sv_init.c
changed	/trunk/engine/common/fs_zip.c
changed	/trunk/engine/common/com_mesh.c
changed	/trunk/engine/client/pr_menu.c
changed	/trunk/engine/qclib/pr_edict.c
changed	/trunk/engine/shaders/glsl/default2d.glsl
changed	/trunk/engine/common/pr_common.h
changed	/trunk/engine/client/merged.h
changed	/trunk/engine/common/com_mesh.h
changed	/trunk/engine/common/bothdefs.h
changed	/trunk/engine/server/sv_user.c
changed	/trunk/engine/server/net_preparse.c
changed	/trunk/engine/server/pr_cmds.c
changed	/trunk/engine/server/world.c
changed	/trunk/engine/common/protocol.h
changed	/trunk/engine/server/sv_sys_unix.c
changed	/trunk/engine/common/fs.c
changed	/trunk/engine/client/pr_clcmd.c
changed	/trunk/engine/common/fs_stdio.c
changed	/trunk/engine/qclib/comprout.c
changed	/trunk/engine/gl/gl_screen.c
changed	/trunk/engine/common/pr_bgcmd.c
changed	/trunk/engine/common/fs.h
changed	/trunk/engine/qclib/qccgui.c
changed	/trunk/engine/server/progs.h
But nothing changed! :shock: I spent 8 hours on this procedure and I'm completely wasted! :lol:
I noticed that Spike in revision #4832 made a lot of changes (even a stub for Bullet Physics inclusion, woo!), one of them is fixing stereoscopic vision. Since this bug appears when player moves around object keep looking at it, I thought that it could be the cause of the mess but with no luck.
Anyone could help?

Thanks in advance!
Meadow Fun!! - my first commercial game, made with FTEQW game engine
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Re: FTEQW - Models disappear with view angle change

Post by Spike »

it should hopefully be fixed now.
I had troubles reproducing it.
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: FTEQW - Models disappear with view angle change

Post by toneddu2000 »

Thanks Spike for your speed-light fix, you're the best, really! :D But unfortunately bug it's still there :( Model still disappears and re-appears when turning around it. I took a look at your modified files but I didn't understand which file is the culprit one.

PS: What abou Bullet integration, did I see right?

EDIT: my map is q3bsp, I noticed that you modified gl_q2bsp.c. Could that be the problem?
Meadow Fun!! - my first commercial game, made with FTEQW game engine
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: FTEQW - Models disappear with view angle change

Post by toneddu2000 »

I feel like an idiot, I create all this mess and, instead, was an error of mine! In these months I'm studying q3map2 so I was experimenting with minimal build: no light (because I want to use only dinamic lights) and no vis (because...I don't know, let's try if it works! :D ) so my NetRadiant default_build_menu.xml was

Code: Select all

<build name="q3map 32bit with collisions only BSP">
<command>[q3map2_32bit] -custinfoparms -meta -v "[MapFile]"</command>
</build>
But, of course, avoiding to VIS the map something strange happened, infact if I build my map with this setup

Code: Select all

<build name="q3map 32bit with collisions , vis and no light">
<command>[q3map2_32bit] -custinfoparms -meta -v "[MapFile]"</command>
<command>[q3map2_32bit] -vis -saveprt "[MapFile]"</command>
</build>
Objects don't disappear anymore, even with release 4832. :x

I feel like sh*t to have wasted your time, Spike :oops: , sorry!
Next time I'll make more advanced tests before yelling "BUG, BUG!" :roll:
Meadow Fun!! - my first commercial game, made with FTEQW game engine
Post Reply