how to make in-game monitors 2019

TEXTURE

1. make a monitor_screen.jpg texture (which is the size of the screen in the brush) MUST BE POWERS OF 16!

2. Put a white pixel in the top left (0,0), and bottom right (1,1) of the image

MAP MAKING

3. make the ‘tv’ brush, and give it the `monitor_screen.jpg texture.

4. make the brush’s face be exactly  the same size as monitor_screen.jpg

5. Make sure none of the x y coords are negative numbers

6. Leaving the x y coordinates of the texture 0, move the brush until the white pixels of the wad image, align with target’s surface

7. turn texture lock on, position the brush it so that its centre is EXACTLY at ‘0 0 0’

8. Make the camera entities

9. give then classname “func_camera”, origin, angles, and a skin number 1 – n for each camera if there are multiples

SHADER WRITING

 

10. Make a monitor_screen.shader:

monitor_screen1
{
{
map $rt:monitor_screen1
}
}

SSQC defining the camera and sending it to CSQC

11. Make a func_camera, and
addself.sendflags = 1;
self.SendEntity = CameraSendEntity;

12. CameraSendEntity send the bytes

CSQC: receiving the camera entities
13. CSQC_Ent_Update receives the bytes, the camera entity is now spawned and will last as long as the ssqc counterpart lasts

14. The Monitors() function finds all the cameras (w skin 1 – n), and assigns their views to shaders called monitor_screen1 – monitor_screenn

 

ISSUES FAQ:

Q1: “My monitor screen is all white!?”

This means the shader is running, but it is not receiving info from the camera. The player needs to ‘see’ the camera (in your POV), so the camera entity can send into to the monitor in CSQC.

Q1: “My monitor screen is all chequerboard!?”

This means um.. hmmm <wip>

 

 

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>