CPBRLighting.cpp 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. #include "CPBRLighting.h"
  2. #include <algorithm>
  3. #include "CGraphicsTexLoadOptions.h"
  4. #include "CFTTGraphicsDevice.h"
  5. #include "CFTTTexture.h"
  6. #include "CMatchSetup.h"
  7. #include "CGFXSpec.h"
  8. #include "CGfxPitch.h"
  9. #include "Matrix.h"
  10. #include "memctrl.h"
  11. #include "HalfConverter.h"
  12. CPBRLighting *CPBRLighting::ms_pInstance;
  13. struct UseBy_DiffuseKitFormula {
  14. float field_0;
  15. float field_4;
  16. };
  17. //0018E454 //^_-
  18. UseBy_DiffuseKitFormula DiffuseKitFormula(float a2, float a3, float a4, float a5, float a6, float a7, float a8, float y, float a10, float a11, EPlayerShaderQuality a12) {
  19. UseBy_DiffuseKitFormula v13;
  20. return v13;
  21. }
  22. //-------------------------------------------------------------------------------------------------
  23. //0018C9D4
  24. CPBRLighting::CPBRLighting() {
  25. }
  26. //-------------------------------------------------------------------------------------------------
  27. //0018CC78
  28. CPBRLighting::~CPBRLighting() {
  29. }
  30. //-------------------------------------------------------------------------------------------------
  31. //0018C984
  32. void CPBRLighting::Init() {
  33. }
  34. //-------------------------------------------------------------------------------------------------
  35. //0018C9A4
  36. void CPBRLighting::Shutdown() {
  37. }
  38. //-------------------------------------------------------------------------------------------------
  39. //0018C9C4
  40. CPBRLighting *CPBRLighting::Get() {
  41. return (CPBRLighting*)rand();
  42. }
  43. //-------------------------------------------------------------------------------------------------
  44. //0018CA14 -_- 经过单元测试,功能正常
  45. void CPBRLighting::Initialise(bool a2) {
  46. }
  47. //-------------------------------------------------------------------------------------------------
  48. //0018CCB8 ^_- 部分指令顺序不一样, 部分用的寄存器不一样(单元测试,输出纹理对象内部RGB数据的MD5值一样,必须在开启高端机器上运行才会被调用)
  49. void CPBRLighting::CreateVersatileLUT() {
  50. }
  51. //-------------------------------------------------------------------------------------------------
  52. //0018CF08 ^_-指令顺序是不一样的(这个模块测试, 在部分情况下MD5值不一样)
  53. void CPBRLighting::CreateSpecularLUT(EPBRLightingMat a2, float a3, float a4, float a5, int a6, int a7, float a8, float a9) {
  54. }
  55. //-------------------------------------------------------------------------------------------------
  56. //0018D1F0 ^_-指令顺序是不一样的(这个模块测试, 输出纹理对象内部RGB数据的MD5值一样,但不确保对象内部其它数据一致)
  57. void CPBRLighting::CreateDiffuseLUTSkin() {
  58. }
  59. //-------------------------------------------------------------------------------------------------
  60. //0018D4BC //^_- 单元测试结果: 输出buffer的md5相同
  61. //不同点: 0018D62E处我的汇编少一条指令,其余地方完全相同
  62. void CPBRLighting::CreateDiffuseLUTKit() {
  63. }
  64. //-------------------------------------------------------------------------------------------------
  65. //0018D66C //^_- 单元测试结果: 输出buffer的md5相同
  66. //不同点: 0018D772处我的汇编少一条指令,其余地方完全相同
  67. void CPBRLighting::CreateDiffuseLUTKitAlpha() {
  68. }
  69. //-------------------------------------------------------------------------------------------------
  70. //0018D7AC //^_- 单元测试结果: 输出buffer的md5相同
  71. //不同点: 0018D91E处我的汇编少一条指令,其余地方完全相同
  72. void CPBRLighting::CreateDiffuseLUTSuit() {
  73. }
  74. //-------------------------------------------------------------------------------------------------
  75. //0018D95C //^_- 单元测试结果: 输出buffer的md5相同
  76. //不同点: 0018DACE处我的汇编少一条指令,其余地方完全相同
  77. void CPBRLighting::CreateDiffuseLUTTracksuit() {
  78. }
  79. //-------------------------------------------------------------------------------------------------
  80. //0018DB0C //^_- 单元测试结果: 输出buffer的md5相同
  81. //不同点: 0018DC12处我的汇编少一条指令,其余地方完全相同
  82. void CPBRLighting::CreateDiffuseLUTHair() {
  83. }
  84. //-------------------------------------------------------------------------------------------------
  85. //0018DC4C //^_- 单元测试结果: 输出buffer的md5相同
  86. //不同: 很多地方不同
  87. void CPBRLighting::CreateGrassLUT() {
  88. }
  89. //-------------------------------------------------------------------------------------------------
  90. //0018E154 ^_^
  91. void CPBRLighting::Reinitialise(bool b) {
  92. LOGE("%x%x",this,b);
  93. }
  94. //-------------------------------------------------------------------------------------------------
  95. //0018E1AA
  96. void CPBRLighting::Prepare() {
  97. //emtry
  98. }
  99. //-------------------------------------------------------------------------------------------------
  100. //0018E1AC ^_^
  101. void CPBRLighting::floatToFour(float a1, uchar *a2, float a3) {
  102. }
  103. //-------------------------------------------------------------------------------------------------
  104. //0018E574
  105. void CPBRLighting::CreateDiffuseLUTBall() {
  106. //没有调用到
  107. }
  108. //-------------------------------------------------------------------------------------------------
  109. //0018E684 ^_^
  110. CFTTTexture *CPBRLighting::GetDiffuse(EPBRLightingMat eMat) {
  111. LOGE("CPBRLighting::GetDiffuse%p%x",this,eMat);
  112. return (CFTTTexture *)rand();
  113. }
  114. //-------------------------------------------------------------------------------------------------
  115. //0018E68C ^_^
  116. CFTTTexture *CPBRLighting::GetSpecular(EPBRLightingMat eMat) {
  117. LOGE("CPBRLighting::GetSpecular%p%x",this,eMat);
  118. return (CFTTTexture *)rand();
  119. }
  120. //-------------------------------------------------------------------------------------------------
  121. //0018E694 ^_^
  122. CFTTTexture *CPBRLighting::GetVersatile() {
  123. LOGE("CPBRLighting::GetVersatile%p",this);
  124. return (CFTTTexture *)rand();
  125. }
  126. //-------------------------------------------------------------------------------------------------
  127. //0018E698 ^_^
  128. CFTTTexture *CPBRLighting::GetGrass() {
  129. return nullptr;
  130. }
  131. //-------------------------------------------------------------------------------------------------
  132. //0018E69C
  133. void CPBRLighting::SpecialFrac(float f) {
  134. //没有调用到
  135. }
  136. //-------------------------------------------------------------------------------------------------