Holopanel Textures
From MovieBattles II Wiki
Introduction
This tutorial covers a basic method to create holographic panels for use in quake 3 maps. Its one simple way I personally use to make very basic holographic panels. More extensive shaders can be included with added layers of static/and or other moving elements.
Required Programs:
- Adobe Photoshop/something similar
- GtkRadiant 1.4 or 1.5
In this tutorial I am assuming that you know how to
- Install custom textures
- Install a custom shader
- Use photoshop to some degree / know that game textures must be power of 2.
Step One - Texture
- First create a black document of the desired size. For this I recommend 512x512 pixels. The "Holo" part of our texture will be inside of the black and ontop of it. So, to start this, create a new layer. On that new layer, select the space that you would like to become your holo panel with the polygon lasso tool.
- Once you have a good selection I recommend you do this:Go to the selection menu, choose Modify> Smooth > and smooth by 3-4px.Then go to the selection menu, choose feather, and feather by 1-2 px. Feel free to play with these variables to get the desired effect.
- You are going to fill your selection with the color the holo panel is going to be. For this example, its going to be a light blue/aqua color.
- Now that you have your selection filled in on your New Layer you can de-select (ctrl + d). Most Holopanels seem to glow some, so lets add a layer effect Outer Glow too the New Layer. In the glow setup pane make it the same color that you filled the selection with. Play with your opacity and size intill you are satisfied. Remember: You don't want the glow to reach the edges of the document. If it does, the texture will have a visible hard edge ingame.
- Once you have applied Outer Glow it should look somthing like this.
- Now whats the point of a blank sign... add something to it. You can add text, additional colored boxes, patterns and designs on new layers or the same layer. As long as it is within the holopanel the effect will stay the same.
- The last thing that must be done with the texture is to give it some 'grain' and make multiple versions for the shader. The shader will be a animation map which will flicker between a selection of variations. The variations we will make in each jpg will be very small but they make a noticeable flicker in-game. If you have multiple layers in addition to your original glow panel layer (i.e. text and more boxes) you are going to need to temporarily merge all those layers into the main layer with the original holopanel outline on it. Now, with that layer selected (vs the black background layer below it) Go to filter>noise>add noise.
- You will apply 3 stages of noise. First, apply noise and make the value 1. Then save a JPG in your desired texture directory. A example name is say... sign_1.jpg Then, reset in history to before you applied noise, and this time apply noise with a value of 2. Then save as sign_2.jpg Etc... I normally do about 3 jpgs worth, but you can do more.
Step Two - Shader
- Now that you've made the images neccesary for the holopanel, make sure they are placed in the desired custom texture directory. For the example, the texture directory is going to be textures/imm_test/ and my images are going to be named sign_1.jpg sign_2.jpg and sign_3.jpg.
- Now time for the shader itself.
textures/imm_test/sign_1
{
qer_trans 0.4
surfaceparm nonopaque
surfaceparm nonsolid
surfaceparm trans
q3map_nolightmap
cull twosided
{
animMap 14 textures/imm_test/sign_1 textures/imm_test/sign_2 textures/imm_test/sign_3 textures/imm_test/sign_1 textures/imm_test/sign_3 textures/imm_test/sign_2
blendFunc GL_ONE GL_ONE
alphaGen const 0.4
rgbGen wave sin 0.75 0.05 0 5
}
}
- Now its fairly direct as to what would be changed for your shader. You would change imm_test to whatever directory your textures are in, and if you named your sign jpgs differently, you would alter those. For example, if you had pipesign_ as the name of base name of your sign textures, you would make sure wherever it said sign_ it would say pipesign_ instead.
- To go over the shader:
{
qer_trans 0.4
surfaceparm nonopaque
surfaceparm nonsolid
surfaceparm trans
q3map_nolightmap
cull twosided
{
- qer_trans 0.4 makes it show up transparent in radiant when applied to a surface
- surfaceparm nonopaque and surfaceparm trans make it transparent ingame
- surfaceparm nonsolid makes it nonsolid for players.
- q3map_nolightmap removes the lightmap stage since light will not effect a vibrant holopanel. This also removes meaningless errors in the console about "map with no lightmap stage" texture errors some shaders have.
- cull twosided means it will draw this texture on the reverse side of the plane it is applied on automaticaly.The second stage of the shader is for the actual glowing texture, and is the most important.
{
animMap 14 textures/imm_test/sign_1 textures/imm_test/sign_2 textures/imm_test/sign_3 textures/imm_test/sign_1 textures/imm_test/sign_3 textures/imm_test/sign_2
blendFunc GL_ONE GL_ONE
alphaGen const 0.4
rgbGen wave sin 0.75 0.05 0 5
}
- animMap 14 says: the following textures will be part of a animation map; this also defines the following stage as a animation map.
- blendfunc GL_ONE GL_ONE creates a conventional transparency by removing the black portions of the texture ingame. This also makes a fullbright texture because it is a additive effect. Blendfuncs are further explained in the q3map shader manual.
- alphaGen const 0.4 helps alter the level of transparency. To be honest, I can't remember if it actualy works in this kind of shader stage or if its just taking up space.
- rgbGen wave sin 0.75 0.05 0 5 directly alters the color waveform of the texture. Its hard to explain, so here is how it is described by the shader manual Now assuming youve saved this shader code into a .shader file, and entered the name of that .shader file into your shaderlist it can be applied in editor. Apply it to a surface in a map (often apply it to a basic patchmesh or a single brush with nodraw on all other sides) and compile.
This is a picture of what I got with the texture and shader I made from this tutorial. Sorry for it being so dark in the background.






