Advertisement
Dimitri_UA

dffimp bumpnormal

Jul 1st, 2014
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.02 KB | None | 0 0
  1. // Load bump texture
  2. while(gtamat.Extension.matFx.enabled && !gtamat.Extension.normalMap.enabled)
  3. {
  4.     gtaRwMatFXBump *effect;
  5.     if(gtamat.Extension.matFx.effect1.type == rpMATFXEFFECTBUMPMAP)
  6.         effect = &gtamat.Extension.matFx.effect1.bump;
  7.     else if(gtamat.Extension.matFx.effect2.type == rpMATFXEFFECTBUMPMAP)
  8.         effect = &gtamat.Extension.matFx.effect1.bump;
  9.     else
  10.         break;
  11.     // Load bump map
  12.     if(effect->hasBumpedTexture && effect->bumpiness != 0.0f)
  13.     {
  14.         BitmapTex *bumpTex = MaxTextureFromRW(effect->bumpedTexture);
  15.         material->SetSubTexmap(ID_BU, bumpTex);
  16.         material->SetTexmapAmt(ID_BU, effect->bumpiness, 0);
  17.         material->EnableMap(ID_BU, TRUE);
  18.     }
  19.     break;
  20. }
  21. // Load normalmap plugin
  22. if(gtamat.Extension.normalMap.enabled && gtamat.Extension.normalMap.normalMapUsed)
  23. {
  24.     // Load normalmap texture
  25.     Texmap *normalmap = (Texmap *)gi->CreateInstance(SClass_ID(TEXMAP_CLASS_ID), GNORMAL_CLASS_ID);
  26.     IParamBlock2 *pb = normalmap->GetParamBlockByID(gnormal_params);
  27.     pb->SetValue(gn_mult_spin, 0, 1.0f);
  28.     pb->SetValue(gn_map1on, 0, TRUE);
  29.     pb->SetValue(gn_map2on, 0, FALSE);
  30.     pb->SetValue(gn_map_normal, 0, MaxTextureFromRW(gtamat.Extension.normalMap.normalMapTexture));
  31.     if(gtamat.Extension.normalMap.normalMapTexture.name.string
  32.         && gtamat.Extension.normalMap.normalMapTexture.name.string[0] != '\0')
  33.         normalmap->SetName(gtamat.Extension.normalMap.normalMapTexture.name.string);
  34.     material->SetSubTexmap(ID_BU, normalmap);
  35.     material->SetTexmapAmt(ID_BU, 1.0f, 0);
  36.     material->EnableMap(ID_BU, TRUE);
  37.     // Load environmentmap
  38.     if(gtamat.Extension.normalMap.envMapUsed && gtamat.Extension.normalMap.envMapCoefficient != 0.0f)
  39.     {
  40.         BitmapTex *envTex = MaxTextureFromRW(gtamat.Extension.normalMap.envMapTexture);
  41.         material->SetSubTexmap(ID_RL, envTex);
  42.         material->SetTexmapAmt(ID_RL, gtamat.Extension.normalMap.envMapCoefficient, 0);
  43.         material->EnableMap(ID_RL, TRUE);
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement