Oxygen 2 - Manual: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
Line 480: Line 480:


If you want proxy to '''cast shadows''', you have to copy proxy selection in model shadow volume. Proxy model should of course contain some shadow LOD :-)
If you want proxy to '''cast shadows''', you have to copy proxy selection in model shadow volume. Proxy model should of course contain some shadow LOD :-)
=== Properties ===
There are various types of properties (face, vertex, model in geometry and also some in resolution LODs)
==== Geometry (model) named property ====
Properties that affect whole model are written in Geometry LOD.
'''class''' for all models that get placed in Visitor
vehicle
house
church  // clock
streetLamp  //light
road
treeHard
treeSoft
bushHard
bushSoft
forest
man
'''Dammage (damage)''' engine is using both words for the same purpose
building
tree
no
bunker
tent
engine // explosive
fence
'''map''' map icon definition
building
fence
house
tree
small tree
bush
forest square
forest border
forest triangle
fortress
hide
fuelstation
view-tower
hospital
church
cross
fountain
chapel
lighthouse
rock
busstop
quay
'''placement''' Assigns specific deformation according to the terrain shape map surface
slope
//  the model is SKEWed according to the terrain shape, vertical lines remain vertical. Better than vertex property “Keep height “ in many cases
SlopeLandContact
placement=slopeZ
placement=slopeX
// variants where the transformation counts with landcontact defined points (1-3)
'''sbsource='''
Which LOD will be used for shadowbuffer casting. If it is not set and shadow=hybrid is present, resolution LODs are used. It uses following values:
visual 
//use resol LODs
explicit 
// Use special SB LODs <11000,11999>.
shadowvolume 
// Use SV LOD
none 
// Do not render anything.
'''prefershadowvolume='''
Choose which shadow casting technique will be used. 0 = Shadow Buffer; 1 = Shadow Volume
'''Forcenotalpha = 1'''
Some models with much alpha textures on their surfaces were considered as alpha objects and therefore were rendered in a speciall pass where it was not possible to cast shadows on them. There is aa new named property (in geometry LOD) using which you can force the whole model not to be considered as alpha model and shadows will be casted on it therefore. Negative impacts of such solution: various alpha sorting artifact may appear on alpha blended parts of such models. It will depend on particular situations if the effects will be bearable or not.
'''Armor=10''' used by tents
'''transparent=1''' absolete, no purpose now
'''Step a xStep''' values for movement settings, they are generated automatically when you optimize animation
'''xsize=0.99; ysize=0.528; xcount=6; ycount=5'''
used by animated flags, obsolete
'''autocenter=0'''
some model classes are placed according to atomatic object center (cars)
this property sets that possition to 0.0.0 from .p3d file will be used. It is offten used for proxies.
'''frequent=1'''
Marks objects that are placed in big amount using instancing.
==== Resol LOD named property ====
'''LODNoShadow=1'''
There will be no SW shadow cast from this LOD. Usualz LODs with more than 1000 faces
'''LODNeeded'''
number will set which LOD should be displayed in case player gets near to object
'''noTL=1'''
Marked LODs without T&L acceleration. Absolete now.
'''keyframe=1'''
marked models that are animated by keyframes stored in .p3d, used only in x:\data3d\racekT.p3d
==== VIEW geometry named property ====
'''CanOcclude=0'''
switches off oclussions, it is now absolete (occlusion is not count for rendering)
==== FACE property ====
'''E'''
You can assign textures and materials, check UV coords. and create selections by any face property
User values are usefull for aditional features defined in configs. 
204 – 208 used for reducing ambient light inside vehicles
50 - 60 used for destruction burn of surfaces
'''Lighting/Shadows''' > not used anz more
'''Enable shadow''' should be default on, shadow casting can be disabled bz named propery in LOD.
==== Vertex Properties ====
'''Shift+E'''
Lighting properties like "'''Always in Shadow'''" should no longer be used, as you can do the same thing with materials, but better (more generic concept). Most important reason is that lighting properties are defined done per-vertex, but lighting is done per-section (it was per-vertex with SW TL which is obsolete now). The conversion of point lighting flags to a section based one is not straightforward and may introduce many artifacts.
'''Shining''' = emissive {1,1,1,1} ; diffuse[]={0,0,0,1}; ambient[]={0,0,0,1}
'''Half Lighted''' = diffuse = {0.5,0.5,0.5,1} ; forcedDiffuse {0.5,0.5,0.5,1}
'''Fully lighted''' = diffuse {0,0,0,1} + forcedDiffuse {1,1,1,1}
Warrning! ambient, diffuse and forced diffuse are additional values that combined together result in pixel color
Shadows are cast only in limited arrea around observer.
If you want some surfaces (building interiors) kept allways in shadow, you should add this line to RVMAT
renderFlags[] = {AlwaysInShadow};

Revision as of 15:44, 22 August 2007

Basic setup

External Viewer: C:\program files\bohemia interactive\arma\ArmA.exe -window -buldozer -noland

  • -worldCfg= - you can force using specific world config (weather settings)
  • -name= - you can force specific user game settings (your ArmA instalation has separate user settings that can for example disable shadows in .../My Documents/ArmA)
  • - addons... used to specify a text file which ArmA.exe will use to load project-specific extras (sunlight, clouds, and sky textures)
  • -cfg= - used to specify a basic configuration file (graphics, memory, size and position of viewer window)
  • -noland - option to not display any ground
  • -window - option to run viewer in window instead of fullscreen


DLL Folder - path to O2 installation

Path for textures - path to work disk (usually P:\)

Source Safe Database - login to Microsoft Visual Studio Source Safe database


Terminology

Point – individual point in space

Vertex – point of intersection of two or more edges

Edge - connection between two vertices

Polygon – planar surface with any number of edges

Triangle – polygon with with three edges

Quad – polygon with four edges

Face – in O2 faces can be triangles or quads

Normal - a normal is a line which is perpendicular to the plane of a polygon. In O2 it appears as a blue line at each vertex.

Skeleton - simplified representation of a model that has moving parts

Bone – base component of a skeleton used for animation, each bone represents a moving part

Section - is created everytime when there's need on the graphics card (GPU) to change parameters. This happens when information about each object, texture and material is read from the CPU or when bones limit is exceeded. The overhead for transmitting instructions between CPU and GPU then slows down the performance of scene-drawing, which could normally draw hundrets of polygons or textures.

The time it takes to render a scene depend largely on these factors:

  • number of vertices in the scene
  • textures - resolution and the number of times it appears in the scene are both factors. If the texture has transparency, even more calculations need to be performed.
  • number of sections in the scene


Viewport Navigation

The origin point for coordinates (xyz = 0,0,0) is marked by the intersection of the red grid lines. Gridlines are spaced at 1m and all units in O2 are measured in meters.

TAB – cycle between viewports (or click in any viewport with mouse to set the active viewport)

arrow keys – scroll in viewports

CTRL+arrow keys – faster scrolling in viewports

ALT+RMB – rotate camera (only works in 3D Preview viewport)

ALT+LMB – scroll in viewports

ALT+RMB+LMB - zoom (mousewheel can also be used to zoom)

F9 – reset to 4 viewport mode (3D, front, top, left)

Space – center active viewport to pin

S – switch between selection masking modes that will be displayed Buldozer (unselected=red, selected=shining, none)


Buldozer navigation

pan camera W, E, S, arrows (same as Lmouse+drag)

rotate camera A, D

rotate object NumPad_arrows (same as Rmouse+drag)

CTRL + camera movements - slower movements

Numpad_5 – reset camera and center object.

Numpad +/- - zoom

[ ] - decrease/increase speed of RTM animations

SHIFT [ ] – spomalení animace //unsure of exact function

Enter / Mousewheel cycle through animations defined in model.cfg

Back space cycle backwards through animations defined in model.cfg

change weather RWIN+U / RWIN+I

change time of day RWIN+T / RWIN+Y

toggle display of textures RWIN+X


Buldozer Menu

Start/Restart - launch or restart Buldozer viewer

Other > Attach - Attach O2 to an existing instance of Buldozer

Other > Detach - Detach O2 from Buldozer

Other > Stop - Stop updating to Buldzoer

Other > Run Script - Start a script in Buldozer

Other > Refresh Viewer - Refresh Buldozer


Hide Textures - Toggle display of textures

Hide Materials - Toggle display of materials

Hide Proxies - Toggle display of proxies

Hide Hidden Faces - Toggle display parts set as 'hidden' in O2

Multiple LODs - Toggle display of multiple LODs

Show Shadow – Toggle display of shadows (uses ShadowVolume to cast shadows on Resolution LODs)

Beware Unsupported Textures - Toggle checking for unsupported textures. Buldozer will sometimes crash because of unsupported textures, this will check if the model has links only to PAA and PAC textures. Turning this on may decrease performance.

Bring to top after update – If this option is active, buldozer will be moved on top of other windows after each update

Selection Masking > Mask Texture - Unselected faces will be masked by a texture

Selection Masking > Mask Material - Unselected faces will be masked by a material

Selection Masking > Highligt - Selected faces will be fully lit

Selection Masking > Crop - Unselected faces will be hidden

Selection Masking > Disable - No selection masking

Selection Masking > Change Masking Texture - Set path to a texture to use for masking

Selection Masking > Change Masking Material - Set path to a material to use for masking


Ground object... – Setup an object to use as a default ground surface (can be useful for viewing shadows cast by objects)

Markers... – Setup an object to be shown in place of isolated vertices (can be useful for viewing memory points)

Autocenter - Automatically center view on object

Center to Pin - Center view on pin location

Center to Selection - Center view on selection

Freeze Animation - Freeze RTM animation

Environment Editor - Opens a dialog window to adjust settings for time of day, weather, fog and lens apperture. Also allows saving current settings as presets.


Pin Tool

The pin tool has many uses but basically is a moveable reference point, which can be activated and deactivated.

R – Sets cursor to 'move pin' mode. Click to place pin.

C – Centers pin to selection, or when no selection exists, centers pin to whole scene.

Space – Center active viewport to pin

Shift+C – Activate/deactivate pin. When active many functions will use the pin - such as rotate, scale, insert point.

You can use PIN mode also for simple snap.

Select LMB part of the mesh you want to snap to another. Keep the LMB pressed and move with pointer to desired snap location.


Creating and selecting objects

At the bottom of the O2 window there is a status bar which displays total vertices and faces and selected vertices and faces.

Insert creates a new point at the cursors location. If the pin is activated, the point will be created at the pins location.

LMB selects objects (drag to select an area)

Ctrl+LMB adds to selection

Ctrl+Shift+LMB substracts from selection

Delete - deletes selection

F6 - create new face from selected vertices (you must have only 3 or 4 vertices selected)

D - removes faces, but vertices remain

CTRL+Delete – removes vertices and merges adjacent faces; preserves UV coords in most situations.

ALT+Backspace – Undo

CTRL+L - Lock selection

CTRL+Shift+L - Unlock selection

CTRL+A - Select all

Editing

The most important selection modes are available via toolbar icons

Editing modes:

F2; O – select whole objects

F4; V – select vertices

T – select polygons

Z – zoom mode


RMB drag to move selection

Shift+RMB drag to create a copy of the selection

Ctrl+RMB drag to rotate selection, activate pin to rotate around pin location

Ctrl+Shift+RMB drag to scale selection, activate pin to scale from pin location


All the functions listed above can be done with numeric values Menu: Points > Transform 3D > Move / Rotate / Scale. It also allows the function to be performed on the whole scene in each LOD by using the 'apply to all LODs' checkbox.


Ctrl+C / Ctrl+V copy and paste. Can be useful between LODs and also between instances of O2

X / Y / Z keys are used to constrain viewport movements to specified axis. Each viewport will display the axis it is currently constrained to beside the viewport name.

P - opens a dialog box to flatten selected points in the selected axis, and it can optionally flatten to pin's plane.


To merge all selected points into one, use Menu: Points > Merge or to merge using proximity threshold use Menu: Points > Merge near

IMPORTANT! Points can only be merged if they have the same vertex properties. While these are no longer necessary in the ArmA engine, they may be present in older models. Use Shift+E to view and edit properties of selected vertices.


For boolean operations, use Menu: Structure > Carve. It will use selected objects to create breakes in the unselected objects. It's not suitable for very complex shapes, and even with basic shapes it might generate some unnecessary geometry that should be manually cleaned.


Local Axes

For manipulation with charcter model selection (bones) a feature for local axis was introduced.

You can define local axis for each selection by a triangle that is named in work selection together with the mesh (work selections start with minus letter)

- hlava

Than after you enable local axis mode in menu, you can manipulate with the mesh in work selection using standard editing tools.

How to define sceleton with local axes and hierarchy:

- select proxy defining axis
- menu from proxy will setup PIN
- select all faces in hierarchy that will be afected by this axis
- menu Selection from local axis will make a work selection (marked by "-" )
- make a named selection with the proxy and a bone 


Hiding and Locking Selections

CTRL+H hide selection

CTRL+I invert selection

CTRL+Shft+H unhide selection

CTRL+L lock selection (note: a locked selection cannot be moved, but can be deleted)

CTRL+Shift+L unlock selection


Measuring

Measurements can be made using Shift+F11 to measure between the pin and the cursor.


Sharp and Smooth Edges

Edges in O2 can be either sharp or smooth. When selected, smooth edges are shown with bright red lines and sharp edges are shown with dark red lines and heavier lineweight. All newly created objects have smooth edges, which means the lighting is calculated using gouraud shading. A sharp edge is like a crease that prevents light from being averaged between adjacent faces.

All face lighting is calculated with surface normals. Normals can be displayed in O2 using File/Options/view normals=ON. A face will have a normal at each vertex. Sharp edges will have normals that are perpendicular to the faces they represent. Smooth edges will have normals that are positioned at the average angle between the faces they represent.

U – make selected edges sharp

I – make selected edges smooth

W - reverse face (flips normals)

Q – uncross face

F5 – recalculate normals

After rotating objects, it's usually necessary to recalculate normals by hitting F5. If there is some reason to prevent recalculating normals, they can be locked from the menu Points > Lock Normals after which they will appear pink instead of blue.


Import / Export

It's possible to import files of type 3DS, OBJ.

Export is not available in Oxygen 2 Personal Edition.


Import from *.3DS

  • specify desired selections to import
  • checkbox option allows creation of named selections in O2 based on selection names in MAX
  • set unit of measure (O2 uses metres)
  • option to convert TGA textures to PAA, and also import animation
  • set the destination LODs for all MAX selections


Surfaces

Every face that will use textures/materials has to be mapped. UV map defines texture proportions and resolution. You can check mapping with menu feature structure->check faces.

Every face can have texture (diffuse map) and material (RVMAT) files attached. Path to theese files is defined in menu face properties (E) You can later see it also in Material library or in Mass renaming tool.

You should wisely decide how many files you have to use, because you define number of sections for drawing the model on graphics card.


Texture Mapping

A – flat mapping from background mode

LMB – select rectangle with texture

RMB – context menu

menu Surfaces->fit Bgr.from Selection – alligns the rectangle according to the selection

arrows – move with the rectangle

Shift+arrows – change rectangle size;

CTRL+LMB outside the rectangle – rotation mode; beware of nonplanar mapping

CTRL+LMB on the edge – scale

B – applies texture/mapping on the surface

CTRL+B – shows the actual mapping

M - „gismo“ maping (Surfaces->Gismo Mapping) – a separate menu starts with simple gismo features, the results can be interactively shown in Buldozer

Select by texture - CTRL+LMB on texture in library

E – face properties - assigning textures and materiáls (more in PROPERTY)

quick multiple renaming - tools->mass texture and material renaming

Neighbour Mapping

Neighbour mapping is mapping that uses informations about mapping from neighbour faces of selected faces. UV from neighbour are copied to unmapped selected faces. Function works repeatly, Until there are unmapped faces.

To use this function, make selection of area, that contains some ummapped faces (faces which have UV zeroed). There must be enough neighbour faces containg some mappings.

Function can be also used as variation of "unfold" or "unwrap" function, because it will try to calculate unknown UV by neighbour if there is no enough mapped neighbour faces, but at least one, which is used to calculate UV transform.

To use function for "unwrap", use following steps

  • 1) remove mapping on area
  • 2) choose one face from area to map (representative)
  • 3) Map this face in UV editor and undeform ths face
  • 4) select area to map
  • 5) use neighbour mapping.

Note: function works best with triangles. Results of quads can be totaly unuseable.


UV unwrapp

To spare amount of textures modelers usualy unwrap surface of a model to a planar projection and compose textures in this layout.

In O2 you can do it with help of UV editor. It has simple editing tools for vertex and face manipulation (move, scale, merge, snap). It also can show selected faces in UV set and back. It also alows you to simply make new UV maping by transforming any face in 2D projection of the editor. UV Editor


Resources Library

This multi functional library can be used not only for materials.

You can explore all files linked to the model surfaces. Select faces assigned to textures/materials. Start MATplugin for editing materials. Rename or Drag and Drop files from the list. Add proxies from file structure on your disk. It shows some information about section count too.

Doubliclick 1) nothing selected – opens the file in associated program/plugin 2) with faces selected, applies texture/material on selected faces. 3) in mapping mode “automap selection” it will change background texture

Ctrl+Doubleclick 1) at texture and material - make selection of the mapped surfaces 2) at p3d – selects all proxies with this path

Ctrl+Shift+Doubleclick 1) texture/material – changes texture on selected faces 2) only for p3d - File -> Open selected *.p3d

Shift+Doubleclick 1) only for p3d – adds proxy in scene

DragAndDrop 1) texture/material – same as Ctrl+Shift+Doubleclick – changes texture on selected faces 2) P3D draged in viewport – makes Proxy 3) P3D draged on menu – opens the file

Rename works only for pathnames, usable in LODs (same as mass renaming)


MAT plugin

You need MAT.dll in O2. Usefull is also subfolder TEPLATES from VCS. Read more about materials in ArmA:_RVMAT

You can use templates stored in O2 sub folder

You can work wit primitives and switch view from model to primitive. You can select simple color for the primitive

RVMAT file content editing.

You can link various values together. Various types of color schemes are available.

You can pick any color on your monitor with the draged dropper icon

Color field shows actual setings, can be used to open color selection palete


If you use material templates, than stages are partialy locked.

Procedural textures can be easily edited in submenu


Copy / Paste v O2 (menu or special hotkey) can be applied on colors and stage settings Warring : standard Ctrl+C a Ctrl+V works in actual window affected by actual “focus” Use menu Edit -> Copy / Paste or hotkeyy Ctrl+Shift+C nebo Ctrl+Shift+V. For correct results.

Copy of collor/stage settings:

1) LMB on any small window with color value number or texture name 
2) use menu Edit -> Copy, or Ctrl+Shift+C
3) choose other color panel, LMB on any slider, value or texture name
4) use menu Edit -> Paste, or Ctrl+Shift+V

Named Selections

(Shift+F5) O2 is not as powerfull as other modeling SW in creating and editing meshes, its power lies in named selections, properties and LOD layers.

  • selections for each LOD can be created, and edited (rename, redefine) using context menu
  • selections that start with “-” (minus) or “.” (dot) are not binarized – they are used for work purposes in BIS tools O2/Visitor
  • each model class has a typical selections
  • WARRNING : animated selections should have max 32 letters long name, thees selections should be in all animated LODs
  • Weights assignment is used for skinning animated content. It is often done in external animation tool and imported in O2


Proxy objects

Instead of copy and paste model parts into various models you can use proxy object as a reference. Each proxy is another section of model. Proxy object is a simple face with 3 vertices's that represents the inserted model. The face should have standard named selection. You can easily use O2 tool Create->Proxy and fill the path of the inserted model there (the path syntax should start with the backslash and end without a .p3d)

\CA\wheeled\zasleh1_proxy

The inserted model is then visible in Buldozer. Default proxy face is oriented the same as the proxy model. Position and orientation of the proxy face will set new position of the inserted object. Proxy model must have geometry property autocenter = 0 otherwise 0.0.0 axis of the inserted model will be not correct.

There should be than added also note in the configuration file that will set the simulation class and the path of the proxy model.

If you want to decompose model into proxy parts you can use a named selection popup menu. If you create a selection and right click on it, you can export selection to proxy. If you have the same selection in other lods you can export them all at once too. There is also reverse function for importing proxy model from the path defined in proxy selection.

If you want proxy to cast shadows, you have to copy proxy selection in model shadow volume. Proxy model should of course contain some shadow LOD :-)


Properties

There are various types of properties (face, vertex, model in geometry and also some in resolution LODs)

Geometry (model) named property

Properties that affect whole model are written in Geometry LOD.

class for all models that get placed in Visitor

vehicle
house
church  // clock
streetLamp  //light
road
treeHard
treeSoft
bushHard
bushSoft
forest
man


Dammage (damage) engine is using both words for the same purpose


building 
tree 
no
bunker
tent 
engine // explosive
fence


map map icon definition

building
fence
house
tree
small tree
bush
forest square
forest border
forest triangle
fortress
hide
fuelstation
view-tower
hospital
church
cross
fountain
chapel
lighthouse
rock
busstop
quay


placement Assigns specific deformation according to the terrain shape map surface

slope 
//  the model is SKEWed according to the terrain shape, vertical lines remain vertical. Better than vertex property “Keep height “ in many cases


SlopeLandContact
placement=slopeZ 
placement=slopeX
// variants where the transformation counts with landcontact defined points (1-3)


sbsource=

Which LOD will be used for shadowbuffer casting. If it is not set and shadow=hybrid is present, resolution LODs are used. It uses following values:

visual  
//use resol LODs
explicit  
// Use special SB LODs <11000,11999>. 
shadowvolume  
// Use SV LOD

none  
// Do not render anything.


prefershadowvolume=

Choose which shadow casting technique will be used. 0 = Shadow Buffer; 1 = Shadow Volume


Forcenotalpha = 1

Some models with much alpha textures on their surfaces were considered as alpha objects and therefore were rendered in a speciall pass where it was not possible to cast shadows on them. There is aa new named property (in geometry LOD) using which you can force the whole model not to be considered as alpha model and shadows will be casted on it therefore. Negative impacts of such solution: various alpha sorting artifact may appear on alpha blended parts of such models. It will depend on particular situations if the effects will be bearable or not.


Armor=10 used by tents


transparent=1 absolete, no purpose now


Step a xStep values for movement settings, they are generated automatically when you optimize animation


xsize=0.99; ysize=0.528; xcount=6; ycount=5

used by animated flags, obsolete


autocenter=0

some model classes are placed according to atomatic object center (cars)

this property sets that possition to 0.0.0 from .p3d file will be used. It is offten used for proxies.


frequent=1

Marks objects that are placed in big amount using instancing.


Resol LOD named property

LODNoShadow=1

There will be no SW shadow cast from this LOD. Usualz LODs with more than 1000 faces


LODNeeded

number will set which LOD should be displayed in case player gets near to object


noTL=1

Marked LODs without T&L acceleration. Absolete now.


keyframe=1

marked models that are animated by keyframes stored in .p3d, used only in x:\data3d\racekT.p3d


VIEW geometry named property

CanOcclude=0

switches off oclussions, it is now absolete (occlusion is not count for rendering)


FACE property

E

You can assign textures and materials, check UV coords. and create selections by any face property

User values are usefull for aditional features defined in configs.

204 – 208 used for reducing ambient light inside vehicles
50 - 60 used for destruction burn of surfaces

Lighting/Shadows > not used anz more

Enable shadow should be default on, shadow casting can be disabled bz named propery in LOD.


Vertex Properties

Shift+E

Lighting properties like "Always in Shadow" should no longer be used, as you can do the same thing with materials, but better (more generic concept). Most important reason is that lighting properties are defined done per-vertex, but lighting is done per-section (it was per-vertex with SW TL which is obsolete now). The conversion of point lighting flags to a section based one is not straightforward and may introduce many artifacts.


Shining = emissive {1,1,1,1} ; diffuse[]={0,0,0,1}; ambient[]={0,0,0,1} 
Half Lighted = diffuse = {0.5,0.5,0.5,1} ; forcedDiffuse {0.5,0.5,0.5,1} 
Fully lighted = diffuse {0,0,0,1} + forcedDiffuse {1,1,1,1} 

Warrning! ambient, diffuse and forced diffuse are additional values that combined together result in pixel color

Shadows are cast only in limited arrea around observer.

If you want some surfaces (building interiors) kept allways in shadow, you should add this line to RVMAT

renderFlags[] = {AlwaysInShadow};