2.0.6 Preview
LouMan:
It's unlikely that I'll be releasing any demo maps. The
biggest change to map making will be the forced use
of DrawInfo's for applying per-vertex colors, tangents,
and binormals (the last two are required for normal
mapping). Actually, custom attribtues can also be applied
with DrawInfo's.
The old style primitives (boxes, pyramids, bases, and
teles), have their tangent and binormals generated for
them. That may change if I decide that I'd rather not
have cool graphics on sad little maps.
I've also added tiered materials, that will allow you to
use different materials depending on the client's
capabilities and configuration (ex: minQuality, minShader).
They also allow you to specify different properties for
different rendering modes (shadow, radar, depth). This
can be used to render alpha thresholded shadows, or
to have consistency when using a vertex shader that
modifies the vertex positions (without having to run the
expensive fragment shader during shadow and radar
passes).
It's unlikely that I'll be releasing any demo maps. The
biggest change to map making will be the forced use
of DrawInfo's for applying per-vertex colors, tangents,
and binormals (the last two are required for normal
mapping). Actually, custom attribtues can also be applied
with DrawInfo's.
The old style primitives (boxes, pyramids, bases, and
teles), have their tangent and binormals generated for
them. That may change if I decide that I'd rather not
have cool graphics on sad little maps.
I've also added tiered materials, that will allow you to
use different materials depending on the client's
capabilities and configuration (ex: minQuality, minShader).
They also allow you to specify different properties for
different rendering modes (shadow, radar, depth). This
can be used to render alpha thresholded shadows, or
to have consistency when using a vertex shader that
modifies the vertex positions (without having to run the
expensive fragment shader during shadow and radar
passes).
no i dont think so but if u need to up grade go on nvivdia.com or something l;ike that and put ur graphic cards name and do i need to upgrade my graphic card geForce 6600 gt ge4ajh60 wrote: omg that is so cool, will i still be able to play on my NVIDIA GeForce FX 5200 or will i need 2 upgrade?
Koni rules!
- ^nightmare^
- Private First Class
- Posts: 1264
- Joined: Sun Feb 20, 2005 7:14 pm
- Location: Alabama
- Contact:
yay (i was wondering when bzflag was going to update stuff like that
Looks great. Another great job by the bzflag developers.
Looks great. Another great job by the bzflag developers.
Need bzflag help? Try looking here: http://www.freewebs.com/bznightmare/map ... aghelp.htm
- QuantumBeep
- Private First Class
- Posts: 117
- Joined: Sun Jan 09, 2005 7:03 am
- Location: Planet Mofo
- Contact:
Yeah, I don't have any hardware that can handle that. That just means I'm going to buy a new video card.
Save the trees, wipe your butt with an owl.
If catapults are outlawed, only outlaws will have catapults.
Proud member of the Mofo Cabal<br>
<br>
OK thats ENUTH OUTA YOU!!!!!!!!!!!!!!!!!!! - smartkid
If catapults are outlawed, only outlaws will have catapults.
Proud member of the Mofo Cabal<br>
<br>
OK thats ENUTH OUTA YOU!!!!!!!!!!!!!!!!!!! - smartkid
- Saturos
- Art Master General
- Posts: 1111
- Joined: Mon Apr 19, 2004 2:48 pm
- Location: Berlin/Germany
- Contact:
Again: You can turn all these things off, right? Will 2.0.6 require better hardware than 2.0.4? Can I make it look like 2.0.4?
Saturos ([phagozytose] : www.phago.de)
Yes, the new features can be disabled. I've also changed
the way that BZFlag loads the material properties for the
default objects (ground, walls, boxes, pyramids, etc...) It
now grabs them from a local file. The file format is the same
as that of the BZW world file, except that you can not
currently use texture matrices and dynamic colors.
Here is an example of a materials.bzw file:
http://trepan.bzflag.bz/materials.bzw
[searched for in ~/.bzf (or equiv.) and data/]
Notice how the "swap" commands allow you to create
material templates. This should make it much easier for
folks to share complicated materials, and still be able to
customized them.
I might also set it up so that the local file can override any
materials assigned by the map. This will help speedup map
making as you wouldn't have to restart a bzfs server to see
the effect of your changes (the local material file can easily
be reloaded).
P.S. LouMan: not really a demo map, but it's something
Here's another tidbit:
http://trepan.bzflag.bz/color.bzw
It's shows how custom vertex attributes can be used to
do vertex coloring, and tangent/binormal specification for
the various types of normal/depth mapping.
P.P.S. The variable name is overrideMap ...
the way that BZFlag loads the material properties for the
default objects (ground, walls, boxes, pyramids, etc...) It
now grabs them from a local file. The file format is the same
as that of the BZW world file, except that you can not
currently use texture matrices and dynamic colors.
Here is an example of a materials.bzw file:
http://trepan.bzflag.bz/materials.bzw
[searched for in ~/.bzf (or equiv.) and data/]
Notice how the "swap" commands allow you to create
material templates. This should make it much easier for
folks to share complicated materials, and still be able to
customized them.
I might also set it up so that the local file can override any
materials assigned by the map. This will help speedup map
making as you wouldn't have to restart a bzfs server to see
the effect of your changes (the local material file can easily
be reloaded).
P.S. LouMan: not really a demo map, but it's something
Here's another tidbit:
http://trepan.bzflag.bz/color.bzw
It's shows how custom vertex attributes can be used to
do vertex coloring, and tangent/binormal specification for
the various types of normal/depth mapping.
P.P.S. The variable name is overrideMap ...
Last edited by trepan on Tue Mar 14, 2006 12:18 pm, edited 1 time in total.
is this in the CVS yet ?
EDIT: OMFG....I wrote this about 10 posts ago...
<----is an idiot
EDIT: OMFG....I wrote this about 10 posts ago...
<----is an idiot
Last edited by Winny on Thu Jul 13, 2006 4:37 am, edited 1 time in total.
- LouMan
- Chief Sgt. of Cartography
- Posts: 338
- Joined: Mon Jan 31, 2005 3:05 am
- Location: Michigan, USA
Any good place to start learning this structure and terminology? I've tried looking into a few basic OpenGL Shading Language tutorials, etc., but most of the examples I have seen are C++ type programs that do not contain any of the terminology in the materials.bzw or color.bzw files. In fact, I tried a simple internet search of "minShader" and the only result was this post, lol.
I think that I might be an old dog trying to learn new tricks with these new features - I am at a complete loss looking at the information in those files and I don't think that I'll be able to understand any of it any time soon. I apologize for my total and complete ignorance of these types of parameters and material/mesh definitions.
Unless I am mistaken, it looks like the utilization of the new whiz bang material/lighting features may be left to those that truly understand what is going on "behind the scenes" with the graphic engines, etc.
I think that I might be an old dog trying to learn new tricks with these new features - I am at a complete loss looking at the information in those files and I don't think that I'll be able to understand any of it any time soon. I apologize for my total and complete ignorance of these types of parameters and material/mesh definitions.
Unless I am mistaken, it looks like the utilization of the new whiz bang material/lighting features may be left to those that truly understand what is going on "behind the scenes" with the graphic engines, etc.
With the map format's ability to do material templates, you don't
need to know jack about shaders to use them. Just fill in your
material with the right textures and colors and you're off to the
races.
Look at the WallMaterial as an example. You don't need to know
how to write a relief mapping shader to use it; textures and colors,
that's it.
You will need to know something about writing shaders if you
want to do custom vertex deformations. Some parametric deformation
shaders might be easy to write (my little fountain shader is flexible
enough to be used by others), but for fancy stuff, you'd want to do
your own. Custom fragment shaders can also dramatically improve
performance by avoiding calculations that need not be done.
Format notes:
The materials.bzw file is a BZFlag specific file. It does not contain
any information specific to the OpenGL Shading Language (OGLSL).
The advanced materials (tiered materials), are a collection of the
current materials organized into technique and modes. Only one
of the techniques is used to render its attached objects. The technique
used is determined by the capabilities and configuration of the client.
Technique selection by the client is done in the reverse order of the
technique specification in the map file.
A new menu configuration entry has been added that allows the user
to setup the level of shaders that they want used. Its value can go from
0 to 10 (0 means no shaders). It is used along side the Quality value
to setup most of the client config.
Another new menu entry is MultiTexturing. Its values are Off and On.
If you specify requireLighting and the user has lighting turned off, then
that technique can not be used. The same type of logic also applies to
materials with texture(s) when the user has texturing or multitexturing
disabled, and with the different shader levels. It can also be used to
provide fallback textures. If a specified texture can not be loaded into
the client, then that technique is not used, and on to the next we go...
P.S. OGLSL spec (and yes, it's _very_ similar to C++)
http://oss.sgi.com/projects/ogl-sample/ ... .10.59.pdf
need to know jack about shaders to use them. Just fill in your
material with the right textures and colors and you're off to the
races.
Look at the WallMaterial as an example. You don't need to know
how to write a relief mapping shader to use it; textures and colors,
that's it.
You will need to know something about writing shaders if you
want to do custom vertex deformations. Some parametric deformation
shaders might be easy to write (my little fountain shader is flexible
enough to be used by others), but for fancy stuff, you'd want to do
your own. Custom fragment shaders can also dramatically improve
performance by avoiding calculations that need not be done.
Format notes:
The materials.bzw file is a BZFlag specific file. It does not contain
any information specific to the OpenGL Shading Language (OGLSL).
The advanced materials (tiered materials), are a collection of the
current materials organized into technique and modes. Only one
of the techniques is used to render its attached objects. The technique
used is determined by the capabilities and configuration of the client.
Technique selection by the client is done in the reverse order of the
technique specification in the map file.
A new menu configuration entry has been added that allows the user
to setup the level of shaders that they want used. Its value can go from
0 to 10 (0 means no shaders). It is used along side the Quality value
to setup most of the client config.
Another new menu entry is MultiTexturing. Its values are Off and On.
If you specify requireLighting and the user has lighting turned off, then
that technique can not be used. The same type of logic also applies to
materials with texture(s) when the user has texturing or multitexturing
disabled, and with the different shader levels. It can also be used to
provide fallback textures. If a specified texture can not be loaded into
the client, then that technique is not used, and on to the next we go...
P.S. OGLSL spec (and yes, it's _very_ similar to C++)
http://oss.sgi.com/projects/ogl-sample/ ... .10.59.pdf
A note about the material modes:
The current supported modes are render, depth, shadow, and radar.
(gbuffer is accepted, but not used)
Render:
Used for normal drawing. Usually the only one that needs to be specified.
Depth:
Used to draw into the depth buffer.
If unspecified, draw with the objects geometry if alphathresholding and
blending are not being used.
Required if you are using vertex shader deformation.
Shadow:
Used to draw shadows. Can be used to draw alpha thresholded shadows.
If unspecified, draw with the object geometry.
Required if you are using vertex shader deformation.
Radar:
Used to draw in Fast Radar modes.
If unspecified, draw with the object geometry.
Required if you are using vertex shader deformation.
Shadow mode example:
If the shadow mode wasn't specified, then the shadows would be
drawn with only the geometry of the objects, and there would not be
any cool texture derived shadow shapes. BZFlag's current shadow
algorithm only uses object geometry (if that helps to better explain it).
The current supported modes are render, depth, shadow, and radar.
(gbuffer is accepted, but not used)
Render:
Used for normal drawing. Usually the only one that needs to be specified.
Depth:
Used to draw into the depth buffer.
If unspecified, draw with the objects geometry if alphathresholding and
blending are not being used.
Required if you are using vertex shader deformation.
Shadow:
Used to draw shadows. Can be used to draw alpha thresholded shadows.
If unspecified, draw with the object geometry.
Required if you are using vertex shader deformation.
Radar:
Used to draw in Fast Radar modes.
If unspecified, draw with the object geometry.
Required if you are using vertex shader deformation.
Shadow mode example:
Code: Select all
advmat LinkMaterial
nolighting
technique
mode render
diffuse green # 0.5
texture snowflake.png
alphathresh 0.25
end
mode shadow
texture snowflake.png
alphathresh 0.25
end
end
end
drawn with only the geometry of the objects, and there would not be
any cool texture derived shadow shapes. BZFlag's current shadow
algorithm only uses object geometry (if that helps to better explain it).
Some radar mode examples:
http://trepan.bzflag.bz/noshow/radarmode.jpg
http://trepan.bzflag.bz/noshow/radarmode2.jpg
http://trepan.bzflag.bz/noshow/radarmode.jpg
http://trepan.bzflag.bz/noshow/radarmode2.jpg
- LouMan
- Chief Sgt. of Cartography
- Posts: 338
- Joined: Mon Jan 31, 2005 3:05 am
- Location: Michigan, USA
If I understand correctly (other than the base objects, which are a 'maybe'), to apply to material template features to custom meshes it is required to use drawInfo to define objects? If so, any chance of a .obj to .bzw convertor being coded (for Windows), similar to modeltool?It's unlikely that I'll be releasing any demo maps. The
biggest change to map making will be the forced use
of DrawInfo's for applying per-vertex colors, tangents,
and binormals (the last two are required for normal
mapping). Actually, custom attribtues can also be applied
with DrawInfo's.
Or is it that these properties/features are assigned using only the material definitions with no need of drawInfo used in meshes?
Again, I apologize for my lack of understanding.
1. Advanced Materials
Tiered materials
2. Material Templates
Can be either normals materials or advanced materials.
Enhnaced by the addition of the "swap" commands.
3. Vertex Attributes
Data attached to vertices. Default attribs are:
- position
- lighting normal
- texture coordinate (for texture unit 0)
4. Shaders
Programs that run on your GPU.
Advanced Material templates do not necessarily use shaders.
If you want normal/depth mapping, you'll need extra data per vertex.
For custom meshes, the only way to apply the extra data is with
DrawInfo's. A converter that generates DrawInfo's with tangent
(and binormal, unless you're using crossprods), will be required.
No more trying to explain things until I'm done.
Tiered materials
2. Material Templates
Can be either normals materials or advanced materials.
Enhnaced by the addition of the "swap" commands.
3. Vertex Attributes
Data attached to vertices. Default attribs are:
- position
- lighting normal
- texture coordinate (for texture unit 0)
4. Shaders
Programs that run on your GPU.
Advanced Material templates do not necessarily use shaders.
If you want normal/depth mapping, you'll need extra data per vertex.
For custom meshes, the only way to apply the extra data is with
DrawInfo's. A converter that generates DrawInfo's with tangent
(and binormal, unless you're using crossprods), will be required.
No more trying to explain things until I'm done.