|
|
(34 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
| The following is temporary...
| | <blockquote>Specular map is a complex bitmap. Each color chanel has its own purpose. You should understand well the way of calculating pixel colors in scene before you paint those textures. |
| | |
| | As written in http://community.bistudio.com/wiki/ArmA:_RVMAT |
| | value of each pixel is calculated with RVMAT values and engine lighting values. |
| | |
| | Texture _SM has diffuse values in RED, specular in GREEN and, Specular power in BLUE chanel. _SMDI does not use RED chanel (better compression) GPU calculates those values automaticaly as Diffuse = 1 - Specular. |
| | |
| | When you use specular map - diffuse, specular in RVMAT should be 1. Then paint B/W map with maximum specular and minimum specular values you imagine on surface. Than choose minimum (black) and maximum specular (white) values and change the bitmap levels to those values.</blockquote> [http://www.flashpoint1985.com/cgi-bin/ikonboard311/ikonboard.cgi?s{{=}}134290c3fb57034d4ebf2ab6bf49ea89;act=ST;f=76;t=68158; Specular Map info. from Armoured Sheep] |
| | |
| | [http://www.flashpoint1985.com/cgi-bin/ikonboard311/ikonboard.cgi?s{{=}}df217ce91fb8aa1c98a227c3387ceab3;act=ST;f=76;t=68241; Shadow Volume info from Armoured Sheep] |
| | |
| | (Note to self) |
| | At some stage it might be a good idea (of course it may just as well not be...) to have a listing of common rvmat material settings with a reference picture. |
| | Maybe specifying shaders, values etc. for common materials such as metals, masonary etc. |
| | Might be something OFPEC might be more suited too as it may get 'out of hand' with a 'thousand' blood textures/materials or something just as stupid... anyhow, this is a reminder note to look at it in the future... |
| | |
| | (Another Note to self) |
| | Start a discussion at some stage on the forums regarding bringing new character models in. |
| | Specificaly, different sized models from the current BIS content. |
| | This discussion would result in some general consensus regarding one (or more) 'sizes'. |
| | That is, all current rtm's and units are based around a model size of 1.8 metres. (apart from some which are unit specific ones...)If there was some community consensus, then perhaps (as an example) one could have some 5'6" (165cm) characters, or 4-5 ft. characters. |
| | Also, a characters volume would need to agreed upon. These, sorts of issues would only be necessary if there was a desire to have rtm's that could work with models from disparate sources. Also, a naming convention, similar maybe to bis's but also including a size reference. |
| | ---- |
| | [quote=Armored_Sheep,April 23 2008,03:56]For working animated material that is bind to vehicle damage you need: |
| | |
| | 1) selection on your model that contains faces with animated material (switch one rvmat to another) |
| | 2) damage materials |
| | 3) section defined in model.cfg for the animated selection |
| | 4) hitzone definition in config.cpp in class HitPoint* where the selection is written |
| | 5) class dammage in config.cpp where switching materials are defined |
| | 6) Model and all its sources must be binarised (packed) in PBO[/quote] |
| | |
| | [http://www.flashpoint1985.com/cgi-bin/ikonboard311/ikonboard.cgi?s{{=}}80c14cab8ca372df9a0a12fad8eda748;act=ST;f=80;t=72938; Damage Textures] |
| ---- | | ---- |
| This is my init.sqf file I use in all my missions.
| |
| It correctly identifies in what context the init.sqf file is being run.
| |
|
| |
|
| <code><nowiki>/*
| | == Undocumented O2Script 'callRuntime' command parameters == |
| Synide
| | |
| 11/6/2007
| | Following is a list of (so far anyway) undocumented O2 commands that can be called via the O2Script command 'callRuntime'. |
| v1.0
| |
|
| |
| Things to note...
| |
|
| |
|
| If you are there at mission launch from that point on your 'Context'
| | eg. |
| will always be 'MP_CLIENT' and will stay as such even when you respawn.
| |
| If you are an 'MP_CLIENT' then you 'disconnect' from a continuing mission
| |
| and select a new playable character or the same playable character you will
| |
| become a 'JIP_CLIENT'.
| |
| If you join an inprogress mission you will be a 'JIP_CLIENT' from that
| |
| point till the mission ends.
| |
| */
| |
| //init.sqf
| |
| debug=false;
| |
|
| |
|
| if (isServer) then
| | _LoD callRuntime "isolatedpts"; |
| {
| |
| if (isnull player) then {Context = "mp_server";}else{Context = "sp_server";};
| |
| }else{
| |
| if (isnull player) then {Context = "jip_client";}else{Context = "mp_client";};
| |
| };
| |
|
| |
|
| call compile preprocessFileLineNumbers "scripts\common\init.sqf"; | | :: From O2Script make a call to the runtime to 'select isolated points'. |
| call compile preprocessFileLineNumbers format["scripts\%1\init.sqf",Context];
| |
|
| |
|
| processInitCommands;
| | facegraph |
| finishMissionInit;
| |
| </nowiki></code>
| |
|
| |
|
| Things to note about the above for MP only.
| | hidesel |
|
| |
|
| *If you are there at mission launch from that point on your 'Context' will always be 'MP_CLIENT' and will stay as such even when you respawn.
| | unhidesel |
| *If you are an 'MP_CLIENT' then you 'disconnect' from the continuing mission and select a new playable character you will become a 'JIP_CLIENT'.
| |
| *If you join an inprogress mission you will be a 'JIP_CLIENT' from that point till the mission ends.
| |
|
| |
|
| === LOD Stuff ===
| | locksel |
|
| |
|
| A typical 'character' model has approx. '''16''' LOD's.
| | unlocksel |
|
| |
|
| <b>10000</b> is the 'Stencil Shadow' LOD.
| | recalcnorms |
| * What is LOD <b>10010</b>?
| |
|
| |
|
| What is the <b>11000</b> LOD, seems to have approx. 1/3 of the Poly's of a 'Stencil Shadow' LOD.
| | sortanims |
|
| |
|
| What is LOD <b>11010</b>?
| | squarizesel |
|
| |
|
| | triangulatesel |
|
| |
|
| | selhidden |
|
| |
|
| | checkclosed |
|
| |
|
| | closetopo |
|
| |
|
| === Model Stuff ===
| | removecompo |
|
| |
|
| | createcompo |
|
| |
|
| *'''OFP2_ManSkeleton''' (has 75 Bones)
| | compoconvexhull |
|
| |
|
| **neck
| | checkconvexcompo |
| ***neck1
| |
| ****head
| |
| *****lbrow
| |
| *****mbrow
| |
| *****rbrow
| |
| *****lmouth
| |
| *****mmouth
| |
| *****rmouth
| |
| *****eyelids (10)
| |
| *****llip
| |
| **weapon
| |
| **launcher
| |
| **camera
| |
| **spine
| |
| **spine1
| |
| **spine2
| |
| **spine3
| |
| **pelvis
| |
| **leftshoulder (20)
| |
| **leftarm
| |
| **leftarmroll
| |
| **leftforearm
| |
| **leftforearmroll
| |
| **lefthand
| |
| **lefthandring
| |
| **lefthandring1
| |
| **lefthandring2
| |
| **lefthandring3
| |
| **lefthandpinky1 (30)
| |
| **lefthandpinky2
| |
| **lefthandpinky3
| |
| **lefthandmiddle1
| |
| **lefthandmiddle2
| |
| **lefthandmiddle3
| |
| **lefthandindex1
| |
| **lefthandindex2
| |
| **lefthandindex3
| |
| **lefthandthumb1
| |
| **lefthandthumb2 (40)
| |
| **lefthandthumb3
| |
| **rightshoulder
| |
| **rightarm
| |
| **rightarmroll
| |
| **rightforearm
| |
| **rightforearmroll
| |
| **righthand
| |
| **righthandring
| |
| **righthandring1
| |
| **righthandring2 (50)
| |
| **righthandring3
| |
| **righthandpinky1
| |
| **righthandpinky2
| |
| **righthandpinky3
| |
| **righthandmiddle1
| |
| **righthandmiddle2
| |
| **righthandmiddle3
| |
| **righthandindex1
| |
| **righthandindex2
| |
| **righthandindex3 (60)
| |
| **righthandthumb1
| |
| **righthandthumb2
| |
| **righthandthumb3
| |
| **leftupleg
| |
| **leftuplegroll
| |
| **leftleg
| |
| **leftlegroll
| |
| **leftfoot
| |
| **lefttoebase
| |
| **rightupleg (70)
| |
| **rightuplegroll
| |
| **rightleg
| |
| **rightlegroll
| |
| **rightfoot
| |
| **righttoebase (75)
| |
|
| |
|
| ----
| | checkconvexity |
| | |
| | autosharp |
|
| |
|
| == M1_Abrams.p3d ==
| | makesharp |
|
| |
|
| :* Has <b>19</b> LOD's.
| | mirroranim |
| :* 1,2,3.5,7,10,15,20,1000,1200,10000,10010, 1.0e13 (Geometry), 1.0e15 (Memory), 2.0e15 (LandContact), 5.0e15 (Hitpoints), 6.0e15 (View Geometry), 7.0e15 (Fire Geometry),11000 and 11010.
| |
|
| |
|
| :* <b>The first LOD in the file</b> (which ever LOD that might be...) has <b>6302</b> Poly's.
| | halfrateanim |
| :: This first LOD has 20 Components
| |
| ::: otochlaven (has 735 selected faces)
| |
| ::: otocvez (has 1634 selected faces)
| |
| ::: zasleh (has 1 selected face)
| |
| ::: otocvelitele (has 651 selected faces)
| |
| ::: poklop_commander (has 432 selected faces)
| |
| ::: poklop_gunner (has 170 selected faces)
| |
| ::: proxy:\ca\temp\proxies\abrams\gunner.01
| |
| ::: proxy:\ca\wheeled\flag_alone.01
| |
| ::: proxy:\ca\temp\proxies\abrams\commander.01
| |
| ::: otochlavenvelitele (has 2668 selected faces)
| |
| ::: feedtray_cover (has 85 selected faces)
| |
| ::: bolt (has 6 selected faces)
| |
| ::: charging_handle (has 50 selected faces)
| |
| ::: \ca\weapons\m2_static.01 (has 1158 selected faces)
| |
| ::: zasleh_1 (has 1 selected face)
| |
| ::: telo (has 6297 selected faces)
| |
| ::: damagehide (has 792 selected faces)
| |
| ::: damagevez (has 317 selected faces)
| |
| ::: proxy:\ca\weapons\zasleh2_proxy.001 (has 1 selected face)
| |
| ::: proxy:\ca\weapons\zasleh2_proxy.002 (has 1 selected face)
| |
|
| |
|
| :* Has 1 property. (lodnoshadow=1)
| | texlist |
|
| |
|
| | matlist |
|
| |
|
| <b>M1A1Skeleton</b> (has 81 Bones)
| | proxylist |
|
| |
|
| *koll1
| | cropsel |
| *koll2
| |
| *koll3
| |
| *koll4
| |
| *koll5
| |
| *koll6
| |
| *koll7
| |
| *koll8
| |
| *kolp1
| |
| *kolp2 (10)
| |
| *kolp3
| |
| *kolp4
| |
| *kolp5
| |
| *kolp6
| |
| *kolp7
| |
| *kolp8
| |
| *podkolol1
| |
| **kolol1
| |
| **podkolol1_hide
| |
| *podkolol2 (20)
| |
| **kolol2
| |
| **podkolol2_hide
| |
| *podkolol3
| |
| **kolol3
| |
| **podkolol3_hide
| |
| *podkolol4
| |
| **kolol4
| |
| **podkolol4_hide
| |
| *podkolol5
| |
| **kolol5 (30)
| |
| **podkolol5_hide
| |
| *podkolol6
| |
| **kolol6
| |
| **podkolol6_hide
| |
| *podkolol7
| |
| **kolol7
| |
| **podkolol7_hide
| |
| *podkolol8
| |
| **kolol8
| |
| **podkolol8_hide (40)
| |
| *podkolop1
| |
| **kolop1
| |
| **podkolop1_hide
| |
| *podkolop2
| |
| **kolop2
| |
| **podkolop2_hide
| |
| *podkolop3
| |
| **kolop3
| |
| **podkolop3_hide
| |
| *podkolop4 (50)
| |
| **kolop4
| |
| **podkolop4_hide
| |
| *podkolop5
| |
| **kolop5
| |
| **podkolop5_hide
| |
| *podkolop6
| |
| **kolop6
| |
| **podkolop6_hide
| |
| *podkolop7
| |
| **kolop7 (60)
| |
| **podkolop7_hide
| |
| *podkolop8
| |
| **kolop8
| |
| **podkolop8_hide
| |
| *ukaz_rychlo
| |
| *ukaz_rychlo2
| |
| *ukaz_rpm
| |
| *ukaz_radar
| |
| *hodinova
| |
| *minutova (70)
| |
| *kompas
| |
| *ukazsmer
| |
| *damagehide
| |
| *otocvez
| |
| **otochlaven
| |
| **otocvelitele
| |
| ***otochlavenvelitele
| |
| ***poklop_commander
| |
| **poklop_gunner
| |
| **damagevez (80)
| |
| *poklop_driver
| |
|
| |
|
| | optimize |
|
| |
|
| <b>Animation Selections</b> (61 in total)
| | isolatedpts |
|
| |
|
| {| border="0"
| | chkmapping |
| ! No. !! AnimSelection !! AnimSource
| |
| |-
| |
| |-
| |
| | [0] || damageHide || damage
| |
| |-
| |
| | [1] || HatchDriver || hatchDriver
| |
| |-
| |
| | [2] || Wheel_kolL1 || wheelL
| |
| |-
| |
| | [3] || Wheel_koloL1 || wheelL
| |
| |-
| |
| | [4] || Wheel_podkoloL1 || damper
| |
| |-
| |
| | [5] || Wheel_kolP1 || wheelR
| |
| |-
| |
| | [6] || Wheel_koloP1 || wheelR
| |
| |-
| |
| | [7] || Wheel_podkoloP1 || damper
| |
| |-
| |
| | [8] || Wheel_kolL2 || wheelL
| |
| |-
| |
| | [9] || Wheel_kolP2 || wheelR
| |
| |-
| |
| | [10] || Wheel_koloL2 || wheelL
| |
| |-
| |
| | [11] || Wheel_koloL3 || wheelL
| |
| |-
| |
| | [12] || Wheel_koloL4 || wheelL
| |
| |-
| |
| | [13] || Wheel_koloL5 || wheelL
| |
| |-
| |
| | [14] || Wheel_koloL6 || wheelL
| |
| |-
| |
| | [15] || Wheel_koloL7 || wheelL
| |
| |-
| |
| | [16] || Wheel_koloP2 || wheelR
| |
| |-
| |
| | [17] || Wheel_koloP3 || wheelR
| |
| |-
| |
| | [18] || Wheel_koloP4 || wheelR
| |
| |-
| |
| | [19] || Wheel_koloP5 || wheelR
| |
| |-
| |
| | [20] || Wheel_koloP6 || wheelR
| |
| |-
| |
| | [21] || Wheel_koloP7 || wheelR
| |
| |-
| |
| | [22] || Wheel_podkoloL2 || damper
| |
| |-
| |
| | [23] || Wheel_podkoloL3 || damper
| |
| |-
| |
| | [24] || Wheel_podkoloL4 || damper
| |
| |-
| |
| | [25] || Wheel_podkoloL5 || damper
| |
| |-
| |
| | [26] || Wheel_podkoloL6 || damper
| |
| |-
| |
| | [27] || Wheel_podkoloL7 || damper
| |
| |-
| |
| | [28] || Wheel_podkoloL8 || damper
| |
| |-
| |
| | [29] || Wheel_podkoloP2 || damper
| |
| |-
| |
| | [30] || Wheel_podkoloP3 || damper
| |
| |-
| |
| | [31] || Wheel_podkoloP4 || damper
| |
| |-
| |
| | [32] || Wheel_podkoloP5 || damper
| |
| |-
| |
| | [33] || Wheel_podkoloP6 || damper
| |
| |-
| |
| | [34] || Wheel_podkoloP7 || damper
| |
| |-
| |
| | [35] || Wheel_podkoloP8 || damper
| |
| |-
| |
| | [36] || podkoloL1_hide_damage || damage
| |
| |-
| |
| | [37] || podkoloL2_hide_damage || damage
| |
| |-
| |
| | [38] || podkoloL3_hide_damage || damage
| |
| |-
| |
| | [39] || podkoloL4_hide_damage || damage
| |
| |-
| |
| | [40] || podkoloL5_hide_damage || damage
| |
| |-
| |
| | [41] || podkoloL6_hide_damage || damage
| |
| |-
| |
| | [42] || podkoloL7_hide_damage || damage
| |
| |-
| |
| | [43] || podkoloL8_hide_damage || damage
| |
| |-
| |
| | [44] || podkoloP1_hide_damage || damage
| |
| |-
| |
| | [45] || podkoloP2_hide_damage || damage
| |
| |-
| |
| | [46] || podkoloP3_hide_damage || damage
| |
| |-
| |
| | [47] || podkoloP4_hide_damage || damage
| |
| |-
| |
| | [48] || podkoloP5_hide_damage || damage
| |
| |-
| |
| | [49] || podkoloP6_hide_damage || damage
| |
| |-
| |
| | [50] || podkoloP7_hide_damage || damage
| |
| |-
| |
| | [51] || podkoloP8_hide_damage || damage
| |
| |-
| |
| | [52] || damageVez || damage
| |
| |-
| |
| | [53] || MainTurret || mainTurret
| |
| |-
| |
| | [54] || MainGun || mainGun
| |
| |-
| |
| | [55] || ObsTurret || obsTurret
| |
| |-
| |
| | [56] || ObsGun || obsGun
| |
| |-
| |
| | [57] || HatchCommander || hatchCommander
| |
| |-
| |
| | [58] || OtocVelitele_damage || damage
| |
| |-
| |
| | [59] || poklop_commander_damage || damage
| |
| |-
| |
| | [60] || poklop_driver_damage || damage
| |
| |-
| |
| |}
| |
|
| |
|
| | chkstvects |
|
| |
|
| ----
| | chkfaces |
|
| |
|
| == UH_60MG.p3d ==
| | repairfaces |
|
| |
|
| Basically a good Air Model should have about <b>8</b> LOD's + the necessary LOD's.
| | degfaces |
|
| |
|
| :* Has <b>24</b> LOD's.
| | smoothgroups |
| :* 1,2,3,4,5,6,7,8, 1000, 1100, 1200, 10000, 10010, 1.0e13 (Geometry), 1.0e15 (Memory), 2.0e15 (LandContact), 5.0e15 (Hitpoints), 6.0e15 (View Geometry), 7.0e15 (Fire Geometry), 8.0e15 (View Cargo-Geometry), 1.3e16 (View Pilot-Geometry), 1.5e16 (View Gunner-Geometry), 11000 and 11010.
| |
|
| |
|
| :* Has approx. <b>14768</b> Poly's in most detailed LOD.
| | countsections |
|
| |
|
| <b>UH60MGSkeleton</b> (has 34 Bones)
| | getsections |
|
| |
|
| *velka vrtule
| | ---- |
| *mala vrtule
| |
| *otocvez
| |
| **otochlaven
| |
| ***gatling_1
| |
| *alt
| |
| *alt2
| |
| *nm_alt
| |
| *nm_alt2
| |
| *mph (10)
| |
| *mph2
| |
| *vert_speed
| |
| *vert_speed2
| |
| *rpm
| |
| *rpm2
| |
| *horizont_dive
| |
| **horizont
| |
| *horizont2_dive
| |
| **horizont2
| |
| *kompas (20)
| |
| *kompas2
| |
| *hodinova
| |
| *hodinova2
| |
| *minutova
| |
| *minutova2
| |
| *damagehide
| |
| *rotorshaft
| |
| *dampers
| |
| *damper_rear
| |
| *elevator (30)
| |
| *horizont_dive2
| |
| *otocvez_1
| |
| **otochlaven_1
| |
| ***gatling_2 (34)
| |
Specular map is a complex bitmap. Each color chanel has its own purpose. You should understand well the way of calculating pixel colors in scene before you paint those textures.
As written in http://community.bistudio.com/wiki/ArmA:_RVMAT
value of each pixel is calculated with RVMAT values and engine lighting values.
Texture _SM has diffuse values in RED, specular in GREEN and, Specular power in BLUE chanel. _SMDI does not use RED chanel (better compression) GPU calculates those values automaticaly as Diffuse = 1 - Specular.
When you use specular map - diffuse, specular in RVMAT should be 1. Then paint B/W map with maximum specular and minimum specular values you imagine on surface. Than choose minimum (black) and maximum specular (white) values and change the bitmap levels to those values.
Specular Map info. from Armoured Sheep
Shadow Volume info from Armoured Sheep
(Note to self)
At some stage it might be a good idea (of course it may just as well not be...) to have a listing of common rvmat material settings with a reference picture.
Maybe specifying shaders, values etc. for common materials such as metals, masonary etc.
Might be something OFPEC might be more suited too as it may get 'out of hand' with a 'thousand' blood textures/materials or something just as stupid... anyhow, this is a reminder note to look at it in the future...
(Another Note to self)
Start a discussion at some stage on the forums regarding bringing new character models in.
Specificaly, different sized models from the current BIS content.
This discussion would result in some general consensus regarding one (or more) 'sizes'.
That is, all current rtm's and units are based around a model size of 1.8 metres. (apart from some which are unit specific ones...)If there was some community consensus, then perhaps (as an example) one could have some 5'6" (165cm) characters, or 4-5 ft. characters.
Also, a characters volume would need to agreed upon. These, sorts of issues would only be necessary if there was a desire to have rtm's that could work with models from disparate sources. Also, a naming convention, similar maybe to bis's but also including a size reference.
[quote=Armored_Sheep,April 23 2008,03:56]For working animated material that is bind to vehicle damage you need:
1) selection on your model that contains faces with animated material (switch one rvmat to another)
2) damage materials
3) section defined in model.cfg for the animated selection
4) hitzone definition in config.cpp in class HitPoint* where the selection is written
5) class dammage in config.cpp where switching materials are defined
6) Model and all its sources must be binarised (packed) in PBO[/quote]
Damage Textures
Undocumented O2Script 'callRuntime' command parameters
Following is a list of (so far anyway) undocumented O2 commands that can be called via the O2Script command 'callRuntime'.
eg.
_LoD callRuntime "isolatedpts";
- From O2Script make a call to the runtime to 'select isolated points'.
facegraph
hidesel
unhidesel
locksel
unlocksel
recalcnorms
sortanims
squarizesel
triangulatesel
selhidden
checkclosed
closetopo
removecompo
createcompo
compoconvexhull
checkconvexcompo
checkconvexity
autosharp
makesharp
mirroranim
halfrateanim
texlist
matlist
proxylist
cropsel
optimize
isolatedpts
chkmapping
chkstvects
chkfaces
repairfaces
degfaces
smoothgroups
countsections
getsections