opteryx 1562 Posted June 8, 2008 Hey, I'm making a map and not getting any errors when packing or starting ArmA, but there's only one p3d model showing up on the surface as clutter (clutter_grass_desert.p3d). I'm no config wizard so I can't spot any errors. Also, the Grass overlay which I talked about in THIS thread is working for no apparent reason. <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">/* Generated by `Laza`(c)Flea 2007 mailto: flea_jump`at`mail.ru */ class CfgPatches { class ramira { units[] = { "ramira" }; worlds[] = { "ramira" }; requiredVersion = 0.100000; requiredAddons[] = { "CAData", "CABuildings", "CAMisc", "CAPlants", "CARoads", "CARocks" }; }; }; class DefaultLighting; class DefaultLighting_CA : DefaultLighting { }; class CfgSurfaces { class Default { }; class water { }; class grass1 : Default { access = 2; files = "d2trava_*"; rough = 0.010000; dust = 0.800000; soundEnviron = "grass"; character = "grass1Clutter"; }; class grass2 : Default { access = 2; files = "d2trava_*"; rough = 0.010000; dust = 0.800000; soundEnviron = "grass"; character = "grass2Clutter"; }; class sand1 : Default { access = 2; files = "d2mesto_*"; rough = 0.010000; dust = 0.800000; soundEnviron = "sand"; character = "sand1Clutter"; }; class sand2: Default { access = 2; files = "d2pisek_*"; rough = 0.010000; dust = 0.800000; soundEnviron = "sand"; character = "sand2Clutter"; }; }; class CfgSurfaceCharacters { class grass1Clutter { probability[] = { 0.980000 }; names[] = { "grass1Clutter" }; }; class grass2Clutter { probability[] = { 0.540000 }; names[] = { "grass2Clutter" }; }; class sand1Clutter { probability[] = { 1.990000 }; names[] = { "sand1Clutter" }; }; class sand2Clutter { probability[] = { 1.560000 }; names[] = { "sand2Clutter" }; }; }; class CfgWorlds { class DefaultClutter { scaleMin = 0.900000; scaleMax = 1.400000; }; class DefaultWorld; class Intro : DefaultWorld { }; class ramira : Intro { access = 3; cutscenes[] = { "" }; description = "Ramira"; icon = ""; worldName = "\ramira\ramira.wrp"; pictureMap = ""; pictureShot = ""; plateFormat = "ML$ - #####"; plateLetters = "ABCDEGHIKLMNOPRSTVXZ"; longitude = -40.020000; latitude = -39.950001; class Grid { offsetX = 0; offsetY = 0; class Zoom0 { zoomMax = 0.200000; format = "XY"; formatX = "Aa"; formatY = "00"; stepX = 100; stepY = 100; }; class Zoom1 { zoomMax = 1.000000; format = "XY"; formatX = "A-"; formatY = "0-"; stepX = 1000; stepY = 1000; }; }; startTime = "06:00"; startDate = "07/07/2007"; startWeather = 0.100000; startFog = 0.000000; forecastWeather = 0.300000; forecastFog = 0.000000; seagullPos[] = { 1272.839966, 150.000000, 14035 }; centerPosition[] = { 2500, 2500, 300 }; ilsPosition[] = { 4292, 4773 }; ilsDirection[] = { 0, 0, 1 }; ilsTaxiIn[] = { }; ilsTaxiOff[] = { }; drawTaxiway = "false"; class ReplaceObjects { }; class Sounds { sounds[] = { }; }; class Animation { vehicles[] = { }; }; class Lighting : DefaultLighting { }; clutterGrid = 1.110000; clutterDist = 55; noDetailDist = 40; fullDetailDist = 5; minTreesInForestSquare = 3; minRocksInRockSquare = 4; class clutter { class grass1Clutter : DefaultClutter { model = "ca\hotfix\clutterfix_grass_long.p3d"; affectedByWind = 0.300000; swLighting = 1; scaleMin = 0.900000; scaleMax = 1.300000; }; class grass2Clutter : DefaultClutter { model = "ca\plants\clutter_grass_desert.p3d"; affectedByWind = 0.300000; swLighting = 1; scaleMin = 0.30000; scaleMax = 0.9700000; }; class sand1Clutter : DefaultClutter { model = "ca\rocks\clutter_stone_small.p3d"; affectedByWind = 0.200000; scaleMin = 0.9300000; scaleMax = 1.200000; }; class sand2Clutter : DefaultClutter { model = "ca\rocks\clutter_stone_small.p3d"; affectedByWind = 0.200000; scaleMin = 0.500000; scaleMax = 0.900000; }; class GrassGeneral : DefaultClutter { model = "ca\plants\clutter_grass_general.p3d"; affectedByWind = 0.300000; swLighting = 1; scaleMin = 0.750000; scaleMax = 1.000000; }; }; class Subdivision { class Fractal { rougness = 5; maxRoad = 0.020000; maxTrack = 0.500000; maxSlopeFactor = 0.050000; }; class WhiteNoise { rougness = 2; maxRoad = 0.010000; maxTrack = 0.050000; maxSlopeFactor = 0.002500; }; minY = 0.000000; minSlope = 0.020000; }; class Ambient { class BigBirds { radius = 300; cost = "((1 + forest + trees) - ((2 * rain)) - houses) * (1 - night) * (1 - sea)"; class Species { class Hawk { probability = 0.200000; cost = 1; }; }; }; class Birds { radius = 170; cost = "(1 - night) * ((1 + (3 * sea)) - (2 * rain))"; class Species { class Seagull { probability = 0.200000; cost = 1; }; }; }; class BigInsects { radius = 20; cost = "(5 - (2 * houses)) * (1 - night) * (1 - rain) * (1 - sea) * (1 - windy)"; class Species { class ButterFly { probability = "0.4 + (meadow * 0.5) - (forest * 0.4)"; cost = 1; }; }; }; class WindClutter { radius = 10; cost = "((20 - 5 * rain) * (3 * (windy factor [0.2, 0.5]))) * (1 - sea)"; class Species { class FxWindGrass1 { probability = "0.4 - 0.2 * hills - 0.2 * trees"; cost = 1; }; class FxWindGrass2 { probability = "0.4 - 0.2 * hills - 0.2 * trees"; cost = 1; }; class FxWindRock1 { probability = "0.4 * hills"; cost = 1; }; class FxWindLeaf1 { probability = "0.2 * trees"; cost = 1; }; class FxWindLeaf2 { probability = "0.1 * trees + 0.2"; cost = 1; }; class FxWindLeaf3 { probability = "0.1 * trees"; cost = 1; }; }; }; class NoWindClutter { radius = 15; cost = "(20 * (windy factor [0.1, 0.2])) * meadow * (1 - rain) * (1 - sea) * (1 - forest) * (1 - houses)"; class Species { class FxWindPollen1 { probability = 1; cost = 1; }; }; }; class SmallInsects { radius = 3; cost = "(12 - 8 * hills) * (1 - night) * (1 - rain) * (1 - sea) * (1 - windy)"; class Species { class HouseFly { probability = "deadBody + (1 - deadBody) * (0.5 - forest * 0.1 - meadow * 0.2)"; cost = 1; }; class HoneyBee { probability = "(1 - deadBody) * (0.5 - forest * 0.1 + meadow * 0.2)"; cost = 1; }; class Mosquito { probability = "(1 - deadBody) * (0.2 * forest)"; cost = 1; }; }; }; class NightInsects { radius = 3; cost = "(9 - 8 * hills) * night * (1 - rain) * (1 - sea) * (1 - windy)"; class Species { class Mosquito { probability = 1; cost = 1; }; }; }; }; class Names { class Veg_1 { name = ""; position[] = { 356, 333 }; type = "vegetationBroadleaf"; radiusA = 50; radiusB = 50; }; }; }; }; class CfgWorldList { class ramira { }; }; See anything wrong? Share this post Link to post Share on other sites
dmarkwick 261 Posted June 8, 2008 I'm no config wizard either but here's my own config for you to examine that has working custom clutter: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">#define ReadAndWrite 0 #define ReadAndCreate 1 #define ReadOnly 2 #define ReadOnlyVerified 3 class CfgPatches { class SavineVode { units[] = {}; worlds[] = {SavineVode}; requiredVersion = 0.1; requiredAddons[] = {"CAData", "CABuildings", "CAMisc", "CAPlants", "CARoads", "CARocks"}; }; }; class DefaultLighting; // External class reference class DefaultLighting_CA : DefaultLighting {}; class cfgSurfaces { class Default {}; class LowGrass : Default { access = 2; files = "dmlowgrass_*"; rough = 0.1; dust = 0.2; soundEnviron = "drygrass"; character = "LowGrassClutter"; }; class HighGrass : Default { access = 2; files = "dmhighgrass_*"; rough = 0.1; dust = 0.2; soundEnviron = "drygrass"; character = "HighGrassClutter"; }; class NoPlants : Default { access = 2; files = "dmnoplants_*"; rough = 0.1; dust = 0.2; soundEnviron = "drygrass"; character = "RocksClutter"; }; class ForestFloor : Default { access = 2; files = "dmforestfloor_*"; rough = 0.1; dust = 0.2; soundEnviron = "forest"; character = "ForestFloorClutter"; }; class ForestGrass : Default { access = 2; files = "dmforestfloor_*"; rough = 0.1; dust = 0.2; soundEnviron = "drygrass"; character = "ForestGrassClutter"; }; class Stream : Default { access = 2; files = "dmstream_*"; rough = 0.1; dust = 0.2; soundEnviron = "drygrass"; character = "StreamClutter"; }; }; class cfgSurfaceCharacters { /* class LowGrassClutter { probability[] = {0.54,0.14}; names[] = {GrassLong_Short,SmallRocks}; }; */ class LowGrassClutter { probability[] = {0.54,0.08}; names[] = {GrassLong_short,SmallRocks}; }; class HighGrassClutter { probability[] = {0.75,0.15, 0.04}; names[] = {GrassLong,SmallRocks,BrokenBranches}; }; class RocksClutter { probability[] = {0.14}; names[] = {Rocks}; }; class ForestFloorClutter { probability[] = {0.84,0.1,0.5}; names[] = {GrassLong_short,GrassFlowers,ForestFern}; }; class ForestGrassClutter { probability[] = {0.99,0.2}; names[] = {GrassForest,SmallRocks}; }; class StreamClutter { probability[] = {0.2,0.2,0.06}; names[] = {StreamPlant1,Rocks,BrokenBranches}; }; }; class CfgWorlds { class DefaultClutter { scaleMin = 0.9; scaleMax = 1.4; }; class DefaultWorld; // External class reference class Intro : DefaultWorld {}; class SavineVode : Intro { access = 3; cutscenes[] = {"DesertIntro1"}; description = "SavineVode"; icon = ""; worldName = "\SavineVode\SavineVode.wrp"; pictureMap = ""; pictureShot = ""; plateFormat = "ML$ - #####"; plateLetters = ABCDEGHIKLMNOPRSTVXZ; longitude = 20; // positive is east latitude = -42; // positive is south //New 6-figure grid system class Grid { offsetX = 245250; offsetY = 799400; class Zoom1 { zoomMax = 0.2; format = "XY"; formatX = "000"; formatY = "000"; stepX = 100; stepY = -100; }; class Zoom2 { zoomMax = 1e+030; format = "XY"; formatX = "00"; formatY = "00"; stepX = 1000; stepY = -1000; }; }; /* class Grid //OFP style Aa00 - JJ99 { //colorGrid[]={0,0,1,1}; //colorGridMap[]={0,0,1,1}; offsetX=0; offsetY=0; class Zoom0 { zoomMax=0.2; format="XY"; formatX="Aa"; formatY="00"; stepX=256; stepY=256; }; class Zoom1 { zoomMax=1.0; format="XY"; formatX="A-"; formatY="0-"; stepX=2560; stepY=2560; }; }; */ startTime = 8:30; startDate = 07/06/2007; startWeather = 0.1; startFog = 0.0; forecastWeather = 0.3; forecastFog = 0.0; seagullPos[] = {1272.84, 150.0, 14035}; centerPosition[] = {2500, 2500, 300}; ilsPosition[] = {2545, 3000}; ilsDirection[] = {0, 0.08, 1}; ilsTaxiIn[] = {2495, 2725, 2495, 2850, 2508, 2860, 2508, 3000, 2520, 3010, 2545, 3000}; ilsTaxiOff[] = {2545, 2445, 2520, 2425, 2495, 2445, 2495, 2725}; drawTaxiway = 0; class ReplaceObjects {}; class Sounds { sounds[] = {}; }; class Animation { vehicles[] = {}; }; class Lighting : DefaultLighting {}; clutterGrid = 1.11; clutterDist = 55; noDetailDist = 40; fullDetailDist = 5; minTreesInForestSquare = 3; minRocksInRockSquare = 4; class clutter { class GrassGeneral : DefaultClutter { model = "ca\plants\clutter_grass_general.p3d"; affectedByWind = 0.3; swLighting = 1; scaleMin = 0.75; scaleMax = 1.0; }; class StreamPlant1 : GrassGeneral { model = "ca\plants\DD_bush02.p3d"; scaleMin = 0.15; scaleMax = 0.25; }; class GrassFlowers : GrassGeneral { model = "ca\plants\clutter_grass_flowers.p3d"; }; class GrassLong : GrassGeneral { model = "ca\plants\clutter_grass_long.p3d"; affectedByWind = 0.6; scaleMin = 0.6; scaleMax = 1.1; }; class GrassLong_Short : GrassGeneral { model = "ca\plants\clutter_grass_long.p3d"; affectedByWind = 0.6; scaleMin = 0.5; scaleMax = 0.7; }; class GrassForest : GrassGeneral { model = "ca\plants\clutter_trava_dlouha.p3d"; affectedByWind = 0.6; scaleMin = 0.6; scaleMax = 1.1; }; class GrassSevenbeauty : GrassGeneral { model = "ca\plants\clutter_grass_sevenbaeuty.p3d"; affectedByWind = 0.2; scaleMin = 0.7; scaleMax = 1.1; }; class GrassYellow : GrassGeneral { model = "ca\plants\clutter_grass_yellow.p3d"; affectedByWind = 0.2; scaleMin = 0.7; scaleMax = 1.1; }; class GrassDesert : GrassGeneral { model = "ca\plants\clutter_grass_desert.p3d"; }; class ForestFern : GrassGeneral { model = "ca\plants\clutter_forest_fern.p3d"; affectedByWind = 0.1; scaleMin = 0.9; scaleMax = 1.3; }; class SmallRocks : GrassGeneral { model = "ca\rocks\clutter_stone_small.p3d"; affectedByWind = 0; scaleMin = 0.9; scaleMax = 1.1; }; class Rocks : GrassGeneral { model = "ca\rocks\clutter_stone_small.p3d"; affectedByWind = 0; scaleMin = 2.0; scaleMax = 2.5; }; class BrokenBranches : GrassGeneral { model = "ca\plants\vetev_3_borovice.p3d"; affectedByWind = 0; scaleMin = 0.9; scaleMax = 1.1; }; class FlowersColor : GrassGeneral { model = "ca\plants\clutter_smetanka.p3d"; }; class FlowersWhite : GrassGeneral { model = "ca\plants\clutter_white_flower.p3d"; }; class MushroomsHorcak : GrassGeneral { model = "ca\plants\clutter_horcak.p3d"; affectedByWind = 0; scaleMin = 0.85; scaleMax = 1.25; }; class MushroomsPrasivka : MushroomsHorcak { model = "ca\plants\clutter_prasivky.p3d"; }; class MushroomsBabka : MushroomsHorcak { model = "ca\plants\clutter_babka.p3d"; }; class MushroomsMuchomurka : MushroomsHorcak { model = "ca\plants\clutter_muchomurka.p3d"; }; }; class Subdivision { class Fractal { rougness = 5; maxRoad = 0.02; maxTrack = 0.5; maxSlopeFactor = 0.05; }; class WhiteNoise { rougness = 2; maxRoad = 0.01; maxTrack = 0.05; maxSlopeFactor = 0.0025; }; minY = 0.0; minSlope = 0.02; }; class Ambient { class BigBirds { radius = 300; cost = "((1 + forest + trees) - ((2 * rain)) - houses) * (1 - night) * (1 - sea)"; class Species { class Hawk { probability = 0.2; cost = 1; }; }; }; class Birds { radius = 170; cost = "(1 - night) * ((1 + (3 * sea)) - (2 * rain))"; class Species { class Seagull { probability = 0.2; cost = 1; }; }; }; class BigInsects { radius = 20; cost = "(5 - (2 * houses)) * (1 - night) * (1 - rain) * (1 - sea) * (1 - windy)"; class Species { class DragonFly { probability = "0.6 - (meadow * 0.5) + (forest * 0.4)"; cost = 1; }; class ButterFly { probability = "0.4 + (meadow * 0.5) - (forest * 0.4)"; cost = 1; }; }; }; class BigInsectsAquatic { radius = 20; cost = "(3 * sea) * (1 - night) * (1 - rain) * (1 - windy)"; class Species { class DragonFly { probability = 1; cost = 1; }; }; }; class WindClutter { radius = 10; cost = "((20 - 5 * rain) * (3 * (windy factor [0.2, 0.5]))) * (1 - sea)"; class Species { class FxWindGrass1 { probability = "0.4 - 0.2 * hills - 0.2 * trees"; cost = 1; }; class FxWindGrass2 { probability = "0.4 - 0.2 * hills - 0.2 * trees"; cost = 1; }; class FxWindRock1 { probability = "0.4 * hills"; cost = 1; }; class FxWindLeaf1 { probability = "0.2 * trees"; cost = 1; }; class FxWindLeaf2 { probability = "0.1 * trees + 0.2"; cost = 1; }; class FxWindLeaf3 { probability = "0.1 * trees"; cost = 1; }; }; }; class NoWindClutter { radius = 15; cost = "(20 * (windy factor [0.1, 0.2])) * meadow * (1 - rain) * (1 - sea) * (1 - forest) * (1 - houses)"; class Species { class FxWindPollen1 { probability = 1; cost = 1; }; }; }; class SmallInsects { radius = 3; cost = "(12 - 8 * hills) * (1 - night) * (1 - rain) * (1 - sea) * (1 - windy)"; class Species { class HouseFly { probability = "deadBody + (1 - deadBody) * (0.5 - forest * 0.1 - meadow * 0.2)"; cost = 1; }; class HoneyBee { probability = "(1 - deadBody) * (0.5 - forest * 0.1 + meadow * 0.2)"; cost = 1; }; class Mosquito { probability = "(1 - deadBody) * (0.2 * forest)"; cost = 1; }; }; }; class NightInsects { radius = 3; cost = "(9 - 8 * hills) * night * (1 - rain) * (1 - sea) * (1 - windy)"; class Species { class Mosquito { probability = 1; cost = 1; }; }; }; }; class Names { class Veg_1 { name = ""; position[] = {2713.62, 2140.92}; type = "VegetationPalm"; radiusA = 50; radiusB = 50; }; class Veg_2 { name = ""; position[] = {2446.09, 3038.29}; type = "VegetationPalm"; radiusA = 50; radiusB = 50; }; class Veg_3 { name = ""; position[] = {2940.52, 2923.19}; type = "VegetationPalm"; radiusA = 50; radiusB = 50; }; }; }; }; class CfgWorldList { class SavineVode {}; }; Share this post Link to post Share on other sites
opteryx 1562 Posted June 8, 2008 Thanks, I'll have a look. The weird thing though is that I have a nearly identical config for another map where all the clutter works, I just can't spot anything wrong. Share this post Link to post Share on other sites
Linker Split 0 Posted June 8, 2008 hmm, i don't know if you made it correct at this point: Quote[/b] ]class grass1 : Default{ access = 2; files = "d2trava_*"; rough = 0.010000; dust = 0.800000; soundEnviron = "grass"; character = "grass1Clutter"; }; class grass2 : Default { access = 2; files = "d2trava_*"; rough = 0.010000; dust = 0.800000; soundEnviron = "grass"; character = "grass2Clutter"; }; you defined the same ground texture for 2 different type of clutters, while you should only have one clutter class for one ground texture. Share this post Link to post Share on other sites
bravo 6 0 Posted June 8, 2008 I'm not sure where is the problem, nor im an expert.. have you tried "swLighting = true" instead 1? <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> class BCGrassShort: BCGrassGeneral { model=ca\plants\clutter_grass_desert.p3d; affectedByWind = 0.2 swLighting = true; //relativeColor[]={0.8,0.8,0.8,0}; colorByGround=0.9; scaleMin = 0.75; scaleMax = 1.0; }; edit: i also thought about what Linker Split refered.. you may wanna recheck that too. Share this post Link to post Share on other sites
opteryx 1562 Posted June 8, 2008 hmm, i don't know if you made it correct at this point:Quote[/b] ]class grass1 : Default{ access = 2; files = "d2trava_*"; rough = 0.010000; dust = 0.800000; soundEnviron = "grass"; character = "grass1Clutter"; }; class grass2 : Default { access = 2; files = "d2trava_*"; rough = 0.010000; dust = 0.800000; soundEnviron = "grass"; character = "grass2Clutter"; }; you defined the same ground texture for 2 different type of clutters, while you should only have one clutter class for one ground texture. Yeah I think that's it. Will try to fix it and we'll see. Share this post Link to post Share on other sites
bravo 6 0 Posted June 8, 2008 can you tell me why you use access = 2; instead of access = ReadOnly; ? Share this post Link to post Share on other sites
Linker Split 0 Posted June 8, 2008 can you tell me why you use access = 2; instead of access = ReadOnly; ? Well, it's the same Quote[/b] ]#define ReadAndWrite 0#define ReadAndCreate 1 #define ReadOnly 2 #define ReadOnlyVerified 3 but i think you mean why you have a number instead of the word... well, it's the same too, numbers are used when you are gonna binarize it. ArmA binarize prefers much more numbers instead of words to define. Share this post Link to post Share on other sites
ProwlerWolf 0 Posted June 9, 2008 Did you get clutters working Opteryx? at first glance your CfgSurfaceCharacters doesn't have any clutter objects listed. Also what exactly does it do for each definition you set in the config? Example, what does access = 3 do and why would I use it? Does it effect the source files in any way? Also random question to toss out. Is there a limit to how many clutters you can have on one texture? I noticed that only some of my clutters will show up when I am using.. lets say 7 clutters. Share this post Link to post Share on other sites
opteryx 1562 Posted June 9, 2008 hmm, i don't know if you made it correct at this point:Quote[/b] ]class grass1 : Default{ access = 2; files = "d2trava_*"; rough = 0.010000; dust = 0.800000; soundEnviron = "grass"; character = "grass1Clutter"; }; class grass2 : Default { access = 2; files = "d2trava_*"; rough = 0.010000; dust = 0.800000; soundEnviron = "grass"; character = "grass2Clutter"; }; you defined the same ground texture for 2 different type of clutters, while you should only have one clutter class for one ground texture. Yeah I think that's it. Will try to fix it and we'll see. Didn't work, I still get only one clutter object. hmmmm Did you get clutters working Opteryx? at first glance your CfgSurfaceCharacters doesn't have any clutter objects listed. What do you mean exactly? I thought they were supposed to be listed in CfgSurfaces. Also what exactly does it do for each definition you set in the config? Example, what does access = 3 do and why would I use it? Does it effect the source files in any way? I don't know, but I think Linker does. Share this post Link to post Share on other sites
bravo 6 0 Posted June 9, 2008 i think i have the similar problem you have Opteryx... (was mentioned this thread) As if that specific code is not even working for a undetected reason. Its a bummer because it slows thing down abit. Been trying to find this issue for some weeks now.. hope we can find the problem. Share this post Link to post Share on other sites
ProwlerWolf 0 Posted June 9, 2008 Have a look at DMarkwick's config. I am no expert at configs but I have gotten clutters to work. So let me try and explain this as best I can and hopefully it will help. class cfgSurfaces <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class Stream : Default { access = 2; files = "dmstream_*"; rough = 0.1; dust = 0.2; soundEnviron = "drygrass"; character = "StreamClutter"; }; The texture dmstream_* is given a name StreamClutter. class cfgSurfaceCharacters <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class StreamClutter { probability[] = {0.2,0.2,0.06}; names[] = {StreamPlant1,Rocks,BrokenBranches}; }; StreamClutter is assigned clutter that is designated in class clutter below. If you notice in cfgSurfaceChartacters the actual clutters that are assigned to the texture dmstream_* are listed in names. class clutter <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class StreamPlant1 : GrassGeneral { model = "ca\plants\DD_bush02.p3d"; scaleMin = 0.15; scaleMax = 0.25; }; The amount of clutters that can be assigned for use in an island are defined in class clutter. Each clutters object is placed here. So if you want to add clutter to dmstream_* then just change class cfgSurfaceCharacters like this. class cfgSurfaceCharacters <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class StreamClutter { probability[] = {0.2,0.2,0.06}; names[] = {StreamPlant1,Rocks,BrokenBranches,ForestFern,MushroomsBabka,GrassDesert,GrassSevenbeauty} ; }; In your posted config you have only one listed in names. class cfgSurfaceCharacters <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> class grass1Clutter { probability[] = { 0.980000 }; names[] = { "grass1Clutter" }; Share this post Link to post Share on other sites
bravo 6 0 Posted June 11, 2008 @Opteryx: just a "dumb" question, does your mask_lco have more then 1 layers? If you have one above other you might be hiding the one you want.. ( i think it already happened to me once ) Share this post Link to post Share on other sites
spirit 0 Posted July 25, 2008 Continue here with my question since it seems most topic related. I finished my config file and basicly it has 2 things in it concerning sound to texture. The odd thing is i get only the sound from the snow. First some code and then i try explain happens. Maybe this rings a bell to somebody cause i dont understand this. I simplified the character to none so i dont need to bother any clutter problems. I just want the sound to be correct. <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> class sneeuw : Default { access = 2; files = "sneeuw*"; rough = 0.010000; dust = 0.800000; soundEnviron = "snow"; character = "Empty"; }; class rots : Default { access = 2; files = "rots*"; rough = 0.010000; dust = 0.800000; soundEnviron = "rock"; character = "Empty"; }; There is 3 rvmats and corresponding textures with it. Namely: - sneeuw - rots - rots2 They show up fine on in the game (its the watkins map incase ya saw it). Now i would expect for indeed snow to get snow sound and rock (rots*) to get rock sound. However the rock gets the snow sound. If i change the snow round to water then everywhere i walk i get water sound. How can it be it picks up the snow sound "sneeuw*" while i am walking on "rots*". Â I realy dont understand it. The rvmate and all the corresponding textures all have the correct name. Does this ring any bell to somebody? Share this post Link to post Share on other sites
spirit 0 Posted July 25, 2008 @Opteryx: just a "dumb" question, does your mask_lco have more then 1 layers? If you have one above other you might be hiding the one you want.. ( i think it already happened to me once ) I also just double checked that and it is one layer. Share this post Link to post Share on other sites
spirit 0 Posted July 25, 2008 Crap that costed me a whole evening and still no solution. I go make pics and lists of all i have. Maybe some of you guys can see the prob cause i am becoming blind for it i gues. Did rename all the textures to good names, checked all sizes, checked the config file, reloaded the mask and sat. Check all paths. Checked the config for the rigt files (* shit) and still only snow works. Double double double double checked the number of layers, no antialiasing. Man it probably is something major stupid and small but i am getting blind for it gues. Share this post Link to post Share on other sites
luki 53 Posted July 25, 2008 Keep in mind: Each texture cell (16 per segment) can only have one surface, based upon the first terrain type in that cell. This means you'll only be likely to get a few surfaces over an entire island. And whats your detail textures call? sneeuw_detail_co.paa? And change old: files = "sneeuw*"; new: files = "sneeuw_*"; Share this post Link to post Share on other sites
spirit 0 Posted July 25, 2008 My config content at the moment. <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> class CfgSurfaces { class Default {}; class water {}; class sneeuw : Default { access = ReadOnly; files = "s*"; rough = 0.01; dust = 0.0; soundEnviron = "snow"; character = "Empty"; }; class rots : Default { access = ReadOnly; files = "r*"; rough = 0.005; dust = 0.01; soundEnviron = "rock"; character = "Empty"; }; }; So i would expect any to start with s and r to get their sound. The list of my data dir: rotson_detail_co rotson_detail_nohq rotson_mco rotstw_detail_co rotstw_deteail_nohq rotstw_mco sneeuw_detail_co sneeuw_detail_nohq sneeuw_mco rvmats (text not binairy) rotson.rvmat rotstw.rvmat sneeuw.rvmat Content rvmats: Rotson.rvmat: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> ambient[] = {0.9,0.9,0.9,1}; diffuse[] = {0.9,0.9,0.9,1}; forcedDiffuse[] = {0.02,0.02,0.02,1}; specular[] = {0.0,0.0,0.0,0}; specularPower = 1; // specular interpolator must be enabled emmisive[] = {0,0,0,0}; PixelShaderID = "NormalMapDiffuse"; VertexShaderID = "NormalMapDiffuseAlpha"; //surfaceInfo = "landtext\bumps.bisurf"; class Stage1 { // normal map texture="WATKINS\DATA\rotson_detail_nohq.paa"; uvSource="tex"; class uvTransform { aside[] = {10,0,0}; up[] = {0,10,0}; dir[] = {0,0,10}; pos[] = {0,0,0}; }; }; class Stage2 { texture="WATKINS\DATA\rotson_detail_co.paa"; uvSource="tex"; class uvTransform { aside[] = {10,0,0}; up[] = {0,10,0}; dir[] = {0,0,10}; pos[] = {0,0,0}; }; }; Rotstw.rvmat <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> ambient[] = {0.9,0.9,0.9,1}; diffuse[] = {0.9,0.9,0.9,1}; forcedDiffuse[] = {0.02,0.02,0.02,1}; specular[] = {0.0,0.0,0.0,0}; specularPower = 1; // specular interpolator must be enabled emmisive[] = {0,0,0,0}; PixelShaderID = "NormalMapDiffuse"; VertexShaderID = "NormalMapDiffuseAlpha"; //surfaceInfo = "landtext\bumps.bisurf"; class Stage1 { // normal map texture="WATKINS\DATA\rotstw_detail_nohq.paa"; uvSource="tex"; class uvTransform { aside[] = {10,0,0}; up[] = {0,10,0}; dir[] = {0,0,10}; pos[] = {0,0,0}; }; }; class Stage2 { texture="WATKINS\DATA\rotstw_detail_co.paa"; uvSource="tex"; class uvTransform { aside[] = {10,0,0}; up[] = {0,10,0}; dir[] = {0,0,10}; pos[] = {0,0,0}; }; }; sneeuw.rvmat <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> ambient[] = {0.9,0.9,0.9,1}; diffuse[] = {0.9,0.9,0.9,1}; forcedDiffuse[] = {0.02,0.02,0.02,1}; specular[] = {0.0,0.0,0.0,0}; specularPower = 1; // specular interpolator must be enabled emmisive[] = {0,0,0,0}; PixelShaderID = "NormalMapDiffuse"; VertexShaderID = "NormalMapDiffuseAlpha"; //surfaceInfo = "landtext\bumps.bisurf"; class Stage1 { // normal map texture="watkins\Data\Sneeuw_detail_nohq.paa"; uvSource="tex"; class uvTransform { aside[] = {10,0,0}; up[] = {0,10,0}; dir[] = {0,0,10}; pos[] = {0,0,0}; }; }; class Stage2 { texture="watkins\Data\Sneeuw_detail_co.paa"; uvSource="tex"; class uvTransform { aside[] = {10,0,0}; up[] = {0,10,0}; dir[] = {0,0,10}; pos[] = {0,0,0}; }; }; The content of my layers file: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> class Layers { class sneeuw { texture = "WATKINS\DATA\sneeuw_mco.paa"; material="WATKINS\DATA\sneeuw.rvmat"; }; class rotson { texture = "WATKINS\DATA\rotson_mco.paa"; material="WATKINS\DATA\rotson.rvmat"; }; class rotstw { texture = "WATKINS\DATA\rotstw_mco.paa"; material="WATKINS\DATA\rotstw.rvmat"; }; }; class Legend { picture="WATKINS\mapLegend.png"; class Colors { /// color names should correspond to surface layer names sneeuw[]={{255,0,0}}; rotson[]={{0,255,0}}; rotstw[]={{0,0,255}}; }; }; Share this post Link to post Share on other sites
spirit 0 Posted July 25, 2008 Just to add that my png files are 512x512 and indeed were made paa files after it. I do not have multiple layers in my mask. Share this post Link to post Share on other sites
spirit 0 Posted July 26, 2008 Realy nobody has a clue? I have only one texture that works and when i put it on files=* then indeed all i go i hear sound. Now strange enough i only hear it when on the defaulted mask area. I saw the visitor picks the most common color in the mask and makes it black right? It is that one that works, no other. I dont mind sharing the source if somebody wants take a look. There is no secret in it:) Share this post Link to post Share on other sites
spirit 0 Posted July 26, 2008 Did an ingame test with the console. Used the command: surfaceType (getPos player) Standing in snow gives : #sneeuw. In other words, the correct surface type as defined. Now it might be that my sound mod does not have a sound to snow attached right or even worse arma doesnt. Who knows. Now the odd part. Standing on rotstwo it returns #sneeuw. In other words the major surface type there is snow. Crap how can that be? Standing onr rotsone give back #rotsone and indeed returns rock sound. Now my question remain (if i assume snow sound is obscured by sound mod of even arma) how can it be that it return #sneeuw as major surface at location rotstwo? Mmmmmm Share this post Link to post Share on other sites
spirit 0 Posted August 16, 2008 Is there anybody out here that might give a hint on why a surface can be dominant to another? Its close to the last thing i need to do for finishing my island and i realy am totaly clueless .... All of the above i have already made according to standards so no conflicts occur with anybody else. Still the sound of the snow surface keeps coming up with one of the rock surfaces. I realy dont get it. Share this post Link to post Share on other sites
Synide 0 Posted August 18, 2008 Sorry i didn't see this earlier... Although the engine is rendering the terrain as per the mask layer in the .pew I believe that it is incorrectly allocating only 1 CfgSurface soundEnviron parameter to an entire 'section/segment' of terrain. Remember a 'segment' is 12x12 terrain texture grids. A very large area. This would possibly explain why, when you run the in-game scripting command 'surfaceType' you are getting a differing return value than what you'd expect. Whether this is a 'feature' or a 'bug' is subjective I guess. Share this post Link to post Share on other sites
spirit 0 Posted August 20, 2008 Sorry i didn't see this earlier...Although the engine is rendering the terrain as per the mask layer in the .pew I believe that it is incorrectly allocating only 1 CfgSurface soundEnviron parameter to an entire 'section/segment' of terrain. Remember a 'segment' is 12x12 terrain texture grids. A very large area. This would possibly explain why, when you run the in-game scripting command 'surfaceType' you are getting a differing return value than what you'd expect. Whether this is a 'feature' or a 'bug' is subjective I guess. Cheers for the answer mate. What i dont udnerstand is that rock type one always starts to sound like rock when ya walk on it. Its only the other rock part that has the problem. I go update my mask to only one color of rock and see if it then works. If it works its not a segment limimation but something else. Strange stuff. Share this post Link to post Share on other sites
Synide 0 Posted August 20, 2008 Sorry i didn't see this earlier...Although the engine is rendering the terrain as per the mask layer in the .pew I believe that it is incorrectly allocating only 1 CfgSurface soundEnviron parameter to an entire 'section/segment' of terrain. Remember a 'segment' is 12x12 terrain texture grids. A very large area. This would possibly explain why, when you run the in-game scripting command 'surfaceType' you are getting a differing return value than what you'd expect. Whether this is a 'feature' or a 'bug' is subjective I guess. Cheers for the answer mate. What i dont udnerstand is that rock type one always starts to sound like rock when ya walk on it. Its only the other rock part that has the problem. I go update my mask to only one color of rock and see if it then works. If it works its not a segment limimation but something else. Strange stuff. Is 'the other rock part' in the same segment as the 'rock part' that is working? What I suspect is that the engine has loaded the segment... seen say 4 different types of 'rock' texture and properly assigned those textures to where you want them as per your mask layer in your .pew... but I believe it is incorrectly assigning 1 and only one soundEnviron to the whole segment... Or maybe this is by design... I do know one thing for sure... the z-order of texture models laid upon terrain needs to be fortified by the devs... it's a bit flakey... Share this post Link to post Share on other sites