Jump to content
poolpunk

Multimaterials show in Buldozer, but not in Game

Recommended Posts

Hi Folks,

 

If someone could hint me in the right direction regarding my Multimaterial issue .. id be thankful forever!

I have been struggling with that for several hours now and can't get it working ..

As the topic implies - My Multimaterials/Textures (Multimaterial 1, Multimaterial 2 , Glass Texture, Glass Material) are displayed in Buldozer, but only the Stage0-Texture is shown in Game ..



74b0BR.jpg74bBIg.jpg

 

RVMAT (MULTI 1)

Spoiler

ambient[]    = {1,1,1,1};
diffuse[]    = {1,1,1,1};
forcedDiffuse[]    = {0,0,0,0};
emmisive[]    = {0,0,0,1};
specular[]    = {1,1,1,1};
specularPower    = 50;
PixelShaderID    = "Multi";
VertexShaderID    = "Multi";
// BLACK
class TexGen0     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class TexGen5     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class Stage0    {texture="fs\fs_b_core\data\fs_b_PlstrOut01_Wht_co.paa";     texGen="0";};
class Stage5    {texture="#(argb,8,8,3)color(0.5,0,1,1,DTSMDI)";         texGen="5";};
class Stage11    {texture="fs\fs_b_core\data\fs_b_PlstrOut01_nohq.paa";         texGen="0";};
// RED
class TexGen1     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class TexGen6     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class Stage1    {texture="fs\fs_b_core\data\fs_b_ConcPln01_Drk_co.paa";        texGen="1";};
class Stage6    {texture="#(argb,8,8,3)color(0.5,0,1,1,DTSMDI)";        texGen="6";};
class Stage12    {texture="fs\fs_b_core\data\fs_b_ConcPln01_nohq.paa";        texGen="1";};
// GREEN
class TexGen2     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class TexGen7     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class Stage2    {texture="fs\fs_b_core\data\fs_b_DeckPln01_Drk_co.paa";        texGen="2";};
class Stage7    {texture="#(argb,8,8,3)color(0.5,0,1,1,DTSMDI)";        texGen="7";};
class Stage13    {texture="fs\fs_b_core\data\fs_b_DeckPln01_nohq.paa";        texGen="2";};
// BLUE
class TexGen3     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class Stage3    {texture="fs\fs_b_core\data\fs_b_GravelGrnt01_Drk_co.paa";texGen="3";};
class Stage8    {texture="#(argb,8,8,3)color(0.5,0,1,1,DTSMDI)";        texGen="3";};
class Stage14    {texture="fs\fs_b_core\data\fs_b_GravelGrnt01_nohq.paa";texGen="3";};
// MASK, MC, AS/ADS
class TexGen4     {uvSource="tex1";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class Stage4    {texture="fs\fs_b_mansion\mansion1c\data\fs_mansion1c_multi1_mask.paa";    texGen="4";};
class Stage9    {texture="fs\fs_b_mansion\mansion1c\data\fs_mansion1c_multi1_mc.paa";    texGen="4";};
class Stage10    {texture="#(argb,8,8,3)color(1,1,1,1,ADS)";            texGen="4";};

RVMAT (MULTI 2)

Spoiler

ambient[]    = {1,1,1,1};
diffuse[]    = {1,1,1,1};
forcedDiffuse[]    = {0,0,0,0};
emmisive[]    = {0,0,0,1};
specular[]    = {1,1,1,1};
specularPower    = 50;
PixelShaderID    = "Multi";
VertexShaderID    = "Multi";
// BLACK
class TexGen0     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class TexGen5     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class Stage0    {texture="fs\fs_b_core\data\fs_b_PlstrIn01_Wht_co.paa";     texGen="0";};
class Stage5    {texture="#(argb,8,8,3)color(0.5,0,1,1,DTSMDI)";         texGen="5";};
class Stage11    {texture="fs\fs_b_core\data\fs_b_PlstrIn01_nohq.paa";         texGen="0";};
// RED
class TexGen1     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class TexGen6     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class Stage1    {texture="fs\fs_b_core\data\fs_b_TilesIn01_co.paa";        texGen="1";};
class Stage6    {texture="#(argb,8,8,3)color(0.5,0,1,1,DTSMDI)";        texGen="6";};
class Stage12    {texture="fs\fs_b_core\data\fs_b_TilesIn01_nohq.paa";        texGen="1";};
// GREEN
class TexGen2     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class TexGen7     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class Stage2    {texture="fs\fs_b_core\data\fs_b_ParquetPln01_Snd_co.paa";    texGen="2";};
class Stage7    {texture="#(argb,8,8,3)color(0.5,0,1,1,DTSMDI)";        texGen="7";};
class Stage13    {texture="#(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)";        texGen="2";};
// BLUE
class TexGen3     {uvSource="tex";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class Stage3    {texture="fs\fs_b_core\data\fs_b_Carpet01_Gry_co.paa";        texGen="3";};
class Stage8    {texture="#(argb,8,8,3)color(0.5,0,1,1,DTSMDI)";        texGen="3";};
class Stage14    {texture="fs\fs_b_core\data\fs_b_Carpet01_nohq.paa";        texGen="3";};
// MASK, MC, AS/ADS
class TexGen4     {uvSource="tex1";    class uvTransform{aside[]={1,0,0};    up[]={0,1,0};    dir[]={0,0,1};    pos[]={0,0,0};};};
class Stage4    {texture="fs\fs_b_mansion\mansion1c\data\fs_mansion1c_multi2_mask.paa";    texGen="4";};
class Stage9    {texture="fs\fs_b_mansion\mansion1c\data\fs_mansion1c_multi2_mc.paa";    texGen="4";};
class Stage10    {texture="#(argb,8,8,3)color(1,1,1,1,ADS)";            texGen="4";};

 

Share this post


Link to post
Share on other sites

Id suggest two things

1) As it appears you're packing two different mods for this (fs_b_core and fs_b_mansion) id suggest making sure you're repacking both of those addons and outputting to the correct directory
2) If that's not the case unpack the PBO in your addons folder, check all the textures are there and the paths haven't changed in your rvmat.

  • Like 1

Share this post


Link to post
Share on other sites

i encountered the same issue yesterday evening. I'll let you know, should i find the solution before someone else does. (Not particularly likely though... someone hijacked my PC and secretly installed Cyberpunk2077 :D ...)

  • Like 1
  • Haha 1

Share this post


Link to post
Share on other sites

Thanks both!
@Jack4607I re-packed both of them several times already and checked (unpacked) it afterwards - It looks all like it should look like 😕
@x3kj Yay! I could keep my pc safe from this virus until now - But i think it is just a matter of time until it gets me too

Share this post


Link to post
Share on other sites

Poolpunk asked me to take a quick look at the issue and he kindly provided the data to look into. The issue is a fairly tricky bug that's (afaik) undocumented.

Multimaterial will only work when the reference UV (texgen4) is strictly within 0,0-1,1 bounds.
In the sample here it was not working because the individual UV groups were offset from that center frame.

Moving them back to it fixes the issue.
yt5dEFJ.png

There is no easy straightforward way to see which of these tiles is 0,0-1,1. One has to either check tex coordinates directly, or simply create a plane, select it, then have it highlighted in the UV editor in O2. The plane is created with the exact same 0,0-1,1 coordinates. If you're using DCCT like Blender or 3DSMax then it should be a lot easier to see the UV's origin and staying within bounds.

  • Like 3
  • Thanks 2

Share this post


Link to post
Share on other sites

And the correct answer has been provided by Mondkalb!🥇What a great, detailed response - Thanks a lot!! Tell me if you you need anything 🙋‍♂️

  • Like 1

Share this post


Link to post
Share on other sites

Hi everyone.

 

Made a multi- shader and a simple object to test the subj with a @mondkalb, tutorial (step-by-step).

 

The mask map:

Spoiler

ZLZPdEZv.jpg?download=1&name=%D0%A1%D0%B


The rvmat: https://pastebin.com/Gc8qEwFf

Everything looks okay while the source of the mask map defined to UVset0 (uvSource="tex").

Spoiler

E15m8KYL.jpg?download=1&name=%D0%A1%D0%B

 

 

But obviously I can't use it this way, I have to place the mask map to the UV1 (second channel) instead, and this is the problem:

 

Spoiler

0koJND3o.jpg?download=1&name=%D0%A1%D0%B

 

All the layers messed up, it seems the Buldozer simply does'nt see a mask map in the UV1. I sure the content of the UV0 and UV1 are absolutelly identical (tried both copy UV0 to UV1 and export a fbx with double channels). So I (barely) sure the mask map is within the proper bounds.

 

Spoiler

4unknown.png

 

5unknown.png

 

Rescaling and moving the UV feautures in the UV0 leads to ridiculous results:

 

Spoiler

hMyQVFLa.jpg?download=1&name=%D0%A1%D0%B

Need a help, pease 😱Absolutelly wasted with this stuff.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×