#10905 posted by gb on 2011/03/05 10:28:15
new bsp format ++
Rotating Objects Not Lighting Correctly
#10906 posted by Mike Woodham on 2011/03/05 21:55:06
I have a rotate_object with two of the brushes at right angles to each other; one lights ok but one does not light at all, and appears black to the player.
I have moved lights closer and lit the floor but it is still black.
Any ideas?
Spinning Through Time And Space
#10907 posted by Preach on 2011/03/06 00:20:35
The problem is that the brushes making up your rotate object are actually moved by the compiler. The compiler measures the offset of the info_rotate entity from the origin, then moves all the brushes that distance in the opposite direction. So from the point of view of the lighting tool your brushes are hovering very close to the origin of the map (the origin of the map aligns with your chosen centre of rotation).
In your case I think what must be happening is that there are lights near enough to the origin to light one of the brushes but not the other. It's a little bit like toggling the flag on doors that sets whether they are lit in the open or closed position.
So there are two options available. One is to bear this restriction in mind and modify your map to account for this. You might be able to displace the entire map such that the lighting state around the origin matches the lighting you wish to have on your brushes. Or you may be able to displace the map so the origin is in the void, and you can set up a special room to light the rotate_object correctly.
The other option I can think of is to create the rotate_object models as separate bsp files, with all world brushes and no info_rotate. Instead, you position the world brushes so that their centre of rotation is at the world origin in this new map file. This allows you to light the entity entirely independent of the rest of the map. You then modify the rotate_object qc to precache and set an external model, and finally add a point entity rotate_object at the current origin of the info_rotate, with the corresponding external model set.
Whether the second method is more effort than the first depends on how fiddly it would be to pull off the first way...
My Head Is Spinning, If Nothing Else
#10908 posted by Mike Woodham on 2011/03/06 01:23:36
Thanks Preach.
OK. After playing around this is what I have:-
- the origin is in the void and the map is completely sealed
- there are no lights near the origin
- if I remove the existing lights from around the rotate object, the object is unlit in game
- I have now set up a room around the origin and lit it with eight lights (each corner top and bottom)
- with the original lighting back in, there is still one piece unlit
- if I remove the lights from around the rotate_object again, and leave the lit room around the origin, the object is still unlit
Due to the size of the map, moving the whole map to get the object to the origin is not practicable. The centre of the rotate_object is @ -2056 3840 748
I'll post some screen shots later - game and editor.
#10909 posted by necros on 2011/03/06 01:23:38
preach, are you sure of that? that doesn't really make sense to me at all. rotate_xxx entities are supposed to be lit where they are in the editor. if you make a map with two rooms, one room that is on the origin and is fully lit and a second with a rotater that is completely dark, the rotater should be dark as well.
In my experience Necros is right. I have few large rotate objects and I created special isolated rooms to put them in to light them up.
http://www.zealousquakefan.com/wp-content/uploads/2011/01/zqftest03_construction32b.jpg
(I wouldn't make the texture sky now I'm using a skylight :p )
Texturing is different, that does involve it mis-aligning them due to moving to the map origin :(
Texturing
#10911 posted by Preach on 2011/03/06 02:23:57
Sorry, I could be wrong about the lighting, I thought that it would be affected in the same way as the texturing is. The second way of fixing it would still work in this case, you would have no problems with texturing or lighting - just a possible headache getting the QC to support it (and maybe a logistics problem of spreading the map information over more than one file).
On Investigation
#10912 posted by Preach on 2011/03/06 03:06:12
I have mocked up a simple level to test this, and have come to the conclusion that the light tools are all unreliable when it comes to lighting rotate_objects. Necros is right that rotate_objects are affected by nearby lights, but I believe the code contains some kind of bug. My test map contains a brush entity whose lighting can be changed by toggling its classname from rotate_object to func_wall. In func_wall mode the lighting is identical to the world brush lighting, for rotate_object it looks off.
What is particularly worrying about this situation is that in Fitzquake some of the incorrect lighting is showing up as coloured even though there is no .lit file for the map. This seems to indicate a memory offset error - the light program is setting the pointer to the lightmap data incorrectly and so the lighting appears offset - and in the edge case escape the lightmap data segment completely to read random memory instead.
This is supported by replicating the coloured light effect - which can only occur on the last brush entity in the map, and then adding a func_wall to the map. Compiling with the func_wall added makes the colours go (although the lightmap is still incorrectly shaded), and then removing it restores colour again. All of this is consistent with a bug setting the lightmap offset too high for these rotate_entity objects - I assume that the lightmaps are stored in ascending order in the bsp.
I've never really looked into the source code for the quake compiling tools, so I might not be the best person to actually nail this bug. But if anyone thinks they could, I'd be happy to send them the maps that reproduce the problem in the way described above.
Fucking Hell
#10913 posted by RickyT33 on 2011/03/06 04:55:12
that is all
..a Question Not Too Smart
#10914 posted by mach5 on 2011/03/06 10:41:42
Hi folks, I got this eternal doubt:
-If I create a Q1 sp episode changing all textures/sounds may I charge for money(a small fee) those who download from my website ?
-I guess a standalone project is out of question.. but simple levels ?
* I've read all ID legal blah-blah but I'm more confused than ever !
For Those Who May Be Interested
#10915 posted by Mike Woodham on 2011/03/06 11:54:56
-I guess a standalone project is out of question.. but simple levels ?
A more important question before that issue would be, how would you convince people to pay for a few quake levels?
That kind of thing was done in the mid-90s but not now :P
Raytrace Of Hope
#10917 posted by Preach on 2011/03/06 12:50:44
If the next brush entity you add to the map is lit fully on all surfaces, you'll probably find that the unlit surface goes away - it'll start drawing the lightmap from the newly added model. You might even consider adding a superfluous func_wall which is lit on all sides in a box outside the map, just for this purpose. It's a huge hack to work around a compiler bug, but better than nothing.
Sunk Without A Trace
#10918 posted by Mike Woodham on 2011/03/06 15:44:26
Unfortunately, no joy.
Nevermind, the rest of the map is of such astounding beauty, with gameplay to test and please the most ardent fan, whilst the cognoscenti of fantasy architechture will be in raptures for the entire time. Yeah, right!
Que Sera Sera
Aligning Textures On Rotaters
#10919 posted by necros on 2011/03/06 19:04:57
noticed you had texture alignment that got trashed by the compiler.
an easy way i've found is to first build your brush and align the textures. next, make your info_rotate origin entity.
now, with texture lock ON, select both the rotater and the origin and move it so the origin is on '0 0 0' (or whichever axis is relevant).
then turn texture lock OFF and move it back to the proper position.
this effectively does in reverse what qbsp does.
i don't understand why qbsp can't have it's own version of texture lock when it's moving bsp models around. :(
A Hod's As Good As A Sink To A Blind Norse
#10920 posted by Mike Woodham on 2011/03/06 21:52:50
Not perfect, but kilometres better than jet black. It now looks as though the outer ring is oak and the crosspiece is walnut. Nice.
I'll go with that - thanks.
Door Triggers
#10921 posted by jt_ on 2011/03/06 22:36:20
So I have a set of bars blocking an area that can only be opened once a computer is destroyed. I think I need to make a func_button with health set to something, so when the player shoots it, it triggers the door (bar) to open. I think there's some problems with this though:
1. don't func_buttons also move when triggered? Having the computer move when triggered would be weird. Is there a way to change the texture (or if it's an animated texture go to a different frame)?
2. How can I target multiple multiple doors? Setting the bars to all have the same name seems make them all move in the same direction, regardless of the direct I've set them to move.
#10922 posted by jt_ on 2011/03/06 22:58:54
I figured out issue 2, I should have been using a trigger_once, which I'm doing now and it's working fine.
Trigger once and trigger multiple can have health too.
with a trigger once the collision box is removed once it has been fired too, so it won't block the player either.
For 2
#10924 posted by necros on 2011/03/06 23:43:39
check the 'doors_dont_link' spawnflag on the func_doors.
#10925 posted by ericw on 2011/03/06 23:49:48
It should be possible to tweak the 'lip' value for the button so it doesn't move. Maybe there's an easier way though.
To get the button's texture to change when pressed/shot, use one with a "+0" prefix. When triggered the button will switch to the corresponding texture with a "+a" prefix. If you have more numbered and lettered textures it will animate in the cycle (+0foo, +1foo, +2foo, etc) and then switch to (+afoo, +bfoo, +cfoo, etc.) when pressed/shot.
@ericw
#10926 posted by jt_ on 2011/03/07 00:08:21
I'll try that later.
This is what I have so far. Requires rmqdemo2. Just unzip in the rmqdemo2 folder and playdemo metaldemo.
Help With GtkRadiant 1.5.0 Plz
#10927 posted by small on 2011/03/07 16:51:03
when ever i create something it can never load the textures (Texture load failed: "textures/"). im doing a trem map.
what do i do?
#10928 posted by Alban on 2011/03/07 19:52:10
i have a problem. when i click cs it says:
Wad file gfx.wad doesn't have WAD3 id.
Helllpppp me pleaase
#10929 posted by negke on 2011/03/08 10:47:48
small: Doesn't the Tremolous website have a guide on how to set up the mapping tools? You need the game pack with entity information (trem.game folder) and the game path has to be set correctly in Radiant. If it doesn't read the textures from the pk3, try extracting the textures and the scripts folders into tremolous/baseq3 (or however it's called) dir.
Alban: Err, install HL/CS properly then? The HL engine uses the WAD3 format, Quake has WAD2.
|