Advertisement
Guest User

jmonkeyengine 3.7.0-alpha2 error

a guest
Mar 8th, 2024
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.43 KB | None | 0 0
  1.  
  2. Mar 07, 2024 10:31:04 PM com.jme3.system.JmeDesktopSystem initialize
  3. INFO: Running on jMonkeyEngine 3.7.0-alpha2
  4. * Branch: HEAD
  5. * Git Hash: e584cb1
  6. * Build Date: 2024-03-04
  7. Mar 07, 2024 10:31:06 PM com.jme3.renderer.opengl.GLRenderer loadCapabilitiesCommon
  8. INFO: OpenGL Renderer Information
  9. * Vendor: ATI Technologies Inc.
  10. * Renderer: Radeon RX 570 Series
  11. * OpenGL Version: 4.6.14802 Compatibility Profile Context 21.12.1 30.0.14011.3017
  12. * GLSL Version: 4.60
  13. * Profile: Compatibility
  14. Mar 07, 2024 10:31:06 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
  15. INFO: LWJGL 2.9.5 context running on thread jME3 Main
  16. * Graphics Adapter: igdumdim64
  17. * Driver Version: 20.19.15.4531
  18. * Scaling Factor: 1
  19. Mar 07, 2024 10:31:06 PM com.jme3.asset.AssetConfig loadText
  20. WARNING: Cannot find loader com.jme3.scene.plugins.ogre.MeshLoader
  21. Mar 07, 2024 10:31:06 PM com.jme3.asset.AssetConfig loadText
  22. WARNING: Cannot find loader com.jme3.scene.plugins.ogre.SkeletonLoader
  23. Mar 07, 2024 10:31:06 PM com.jme3.asset.AssetConfig loadText
  24. WARNING: Cannot find loader com.jme3.scene.plugins.ogre.MaterialLoader
  25. Mar 07, 2024 10:31:06 PM com.jme3.asset.AssetConfig loadText
  26. WARNING: Cannot find loader com.jme3.scene.plugins.ogre.SceneLoader
  27. Mar 07, 2024 10:31:06 PM com.jme3.asset.AssetConfig loadText
  28. WARNING: Cannot find loader com.jme3.scene.plugins.fbx.FbxLoader
  29. Mar 07, 2024 10:31:06 PM com.jme3.asset.AssetConfig loadText
  30. WARNING: Cannot find loader com.jme3.scene.plugins.gltf.GltfLoader
  31. Mar 07, 2024 10:31:06 PM com.jme3.asset.AssetConfig loadText
  32. WARNING: Cannot find loader com.jme3.scene.plugins.gltf.BinLoader
  33. Mar 07, 2024 10:31:06 PM com.jme3.asset.AssetConfig loadText
  34. WARNING: Cannot find loader com.jme3.scene.plugins.gltf.GlbLoader
  35. Mar 07, 2024 10:31:06 PM com.jme3.asset.AssetConfig loadText
  36. WARNING: Cannot find loader com.jme3.audio.plugins.OGGLoader
  37. SLF4J(W): No SLF4J providers were found.
  38. SLF4J(W): Defaulting to no-operation (NOP) logger implementation
  39. SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.
  40. Libbulletjme version 18.5.2 initializing
  41. Mar 07, 2024 10:31:08 PM com.jme3.renderer.opengl.GLRenderer updateShaderSourceData
  42. WARNING: Bad compile of:
  43. 1 #version 150 core
  44. 2 #define FRAGMENT_SHADER 1
  45. 3 #define BOUND_DRAW_BUFFER 0
  46. 4 #define HARDWARE_SHADOWS 1
  47. 5 #define FILTER_MODE 1
  48. 6 #define PCFEDGE 1.0
  49. 7 #define SHADOWMAP_SIZE 1024.0
  50. 8 #define PSSM 1
  51. 9 #define BACKFACE_SHADOWS 1
  52. 10 #extension GL_ARB_texture_multisample : enable
  53. 11 #extension GL_OES_gpu_shader5 : enable
  54. 12 #extension GL_ARB_gpu_shader5 : enable
  55. 13 // -- begin import Common/ShaderLib/GLSLCompat.glsllib --
  56. 14 #ifdef FRAGMENT_SHADER
  57. 15 precision highp float;
  58. 16 precision highp int;
  59. 17 precision highp sampler2DArray;
  60. 18 precision highp sampler2DShadow;
  61. 19 precision highp samplerCube;
  62. 20 precision highp sampler3D;
  63. 21 precision highp sampler2D;
  64. 22 #if __VERSION__ >= 310
  65. 23 precision highp sampler2DMS;
  66. 24 #endif
  67. 25
  68. 26 #endif
  69. 27
  70. 28 #if defined GL_ES
  71. 29 # define hfloat highp float
  72. 30 # define hvec2 highp vec2
  73. 31 # define hvec3 highp vec3
  74. 32 # define hvec4 highp vec4
  75. 33 # define lfloat lowp float
  76. 34 # define lvec2 lowp vec2
  77. 35 # define lvec3 lowp vec3
  78. 36 # define lvec4 lowp vec4
  79. 37 #else
  80. 38 # define hfloat float
  81. 39 # define hvec2 vec2
  82. 40 # define hvec3 vec3
  83. 41 # define hvec4 vec4
  84. 42 # define lfloat float
  85. 43 # define lvec2 vec2
  86. 44 # define lvec3 vec3
  87. 45 # define lvec4 vec4
  88. 46 #endif
  89. 47
  90. 48 #if __VERSION__ >= 130
  91. 49
  92. 50 #ifdef FRAGMENT_SHADER
  93. 51 #ifdef GL_ES
  94. 52 #ifdef BOUND_DRAW_BUFFER
  95. 53
  96. 54 #if 0<=BOUND_DRAW_BUFFER
  97. 55 #if BOUND_DRAW_BUFFER == 0
  98. 56 layout( location = 0 ) out highp vec4 outFragColor;
  99. 57 #else
  100. 58 layout( location = 0 ) out highp vec4 outNOP0;
  101. 59 #endif
  102. 60 #endif
  103. 61
  104. 62 #if 1<=BOUND_DRAW_BUFFER
  105. 63 #if BOUND_DRAW_BUFFER == 1
  106. 64 layout( location = 1 ) out highp vec4 outFragColor;
  107. 65 #else
  108. 66 layout( location = 1 ) out highp vec4 outNOP1;
  109. 67 #endif
  110. 68 #endif
  111. 69
  112. 70 #if 2<=BOUND_DRAW_BUFFER
  113. 71 #if BOUND_DRAW_BUFFER == 2
  114. 72 layout( location = 2 ) out highp vec4 outFragColor;
  115. 73 #else
  116. 74 layout( location = 2 ) out highp vec4 outNOP2;
  117. 75 #endif
  118. 76 #endif
  119. 77
  120. 78 #if 3<=BOUND_DRAW_BUFFER
  121. 79 #if BOUND_DRAW_BUFFER == 3
  122. 80 layout( location = 3 ) out highp vec4 outFragColor;
  123. 81 #else
  124. 82 layout( location = 3 ) out highp vec4 outNOP3;
  125. 83 #endif
  126. 84 #endif
  127. 85
  128. 86 #if 4<=BOUND_DRAW_BUFFER
  129. 87 #if BOUND_DRAW_BUFFER == 4
  130. 88 layout( location = 4 ) out highp vec4 outFragColor;
  131. 89 #else
  132. 90 layout( location = 4 ) out highp vec4 outNOP4;
  133. 91 #endif
  134. 92 #endif
  135. 93
  136. 94 #if 5<=BOUND_DRAW_BUFFER
  137. 95 #if BOUND_DRAW_BUFFER == 5
  138. 96 layout( location = 5 ) out highp vec4 outFragColor;
  139. 97 #else
  140. 98 layout( location = 5 ) out highp vec4 outNOP5;
  141. 99 #endif
  142. 100 #endif
  143. 101
  144. 102 #if 6<=BOUND_DRAW_BUFFER
  145. 103 #if BOUND_DRAW_BUFFER == 6
  146. 104 layout( location = 6 ) out highp vec4 outFragColor;
  147. 105 #else
  148. 106 layout( location = 6 ) out highp vec4 outNOP6;
  149. 107 #endif
  150. 108 #endif
  151. 109
  152. 110 #if 7<=BOUND_DRAW_BUFFER
  153. 111 #if BOUND_DRAW_BUFFER == 7
  154. 112 layout( location = 7 ) out highp vec4 outFragColor;
  155. 113 #else
  156. 114 layout( location = 7 ) out highp vec4 outNOP7;
  157. 115 #endif
  158. 116 #endif
  159. 117
  160. 118 #if 8<=BOUND_DRAW_BUFFER
  161. 119 #if BOUND_DRAW_BUFFER == 8
  162. 120 layout( location = 8 ) out highp vec4 outFragColor;
  163. 121 #else
  164. 122 layout( location = 8 ) out highp vec4 outNOP8;
  165. 123 #endif
  166. 124 #endif
  167. 125
  168. 126 #if 9<=BOUND_DRAW_BUFFER
  169. 127 #if BOUND_DRAW_BUFFER == 9
  170. 128 layout( location = 9 ) out highp vec4 outFragColor;
  171. 129 #else
  172. 130 layout( location = 9 ) out highp vec4 outNOP9;
  173. 131 #endif
  174. 132 #endif
  175. 133
  176. 134 #if 10<=BOUND_DRAW_BUFFER
  177. 135 #if BOUND_DRAW_BUFFER == 10
  178. 136 layout( location = 10 ) out highp vec4 outFragColor;
  179. 137 #else
  180. 138 layout( location = 10 ) out highp vec4 outNOP10;
  181. 139 #endif
  182. 140 #endif
  183. 141
  184. 142 #if 11<=BOUND_DRAW_BUFFER
  185. 143 #if BOUND_DRAW_BUFFER == 11
  186. 144 layout( location = 11 ) out highp vec4 outFragColor;
  187. 145 #else
  188. 146 layout( location = 11 ) out highp vec4 outNOP11;
  189. 147 #endif
  190. 148 #endif
  191. 149
  192. 150 #if 12<=BOUND_DRAW_BUFFER
  193. 151 #if BOUND_DRAW_BUFFER == 12
  194. 152 layout( location = 12 ) out highp vec4 outFragColor;
  195. 153 #else
  196. 154 layout( location = 12 ) out highp vec4 outNOP12;
  197. 155 #endif
  198. 156 #endif
  199. 157
  200. 158 #if 13<=BOUND_DRAW_BUFFER
  201. 159 #if BOUND_DRAW_BUFFER == 13
  202. 160 layout( location = 13 ) out highp vec4 outFragColor;
  203. 161 #else
  204. 162 layout( location = 13 ) out highp vec4 outNOP13;
  205. 163 #endif
  206. 164 #endif
  207. 165
  208. 166 #if 14<=BOUND_DRAW_BUFFER
  209. 167 #if BOUND_DRAW_BUFFER == 14
  210. 168 layout( location = 14 ) out highp vec4 outFragColor;
  211. 169 #else
  212. 170 layout( location = 14 ) out highp vec4 outNOP14;
  213. 171 #endif
  214. 172 #endif
  215. 173 #else
  216. 174 out highp vec4 outFragColor;
  217. 175 #endif
  218. 176 #else
  219. 177 out vec4 outFragColor;
  220. 178 #endif
  221. 179 #endif
  222. 180
  223. 181 # define texture1D texture
  224. 182 # define texture2D texture
  225. 183 # define texture3D texture
  226. 184 # define textureCube texture
  227. 185 # define texture2DLod textureLod
  228. 186 # define textureCubeLod textureLod
  229. 187 # define texture2DArray texture
  230. 188 # if defined VERTEX_SHADER
  231. 189 # define varying out
  232. 190 # define attribute in
  233. 191 # elif defined FRAGMENT_SHADER
  234. 192 # define varying in
  235. 193 # define gl_FragColor outFragColor
  236. 194 # endif
  237. 195 #else
  238. 196 # define isnan(val) !(val<0.0||val>0.0||val==0.0)
  239. 197 #endif
  240. 198
  241. 199 #if __VERSION__ == 110
  242. 200 mat3 mat3_sub(mat4 m) {
  243. 201 return mat3(m[0].xyz, m[1].xyz, m[2].xyz);
  244. 202 }
  245. 203 #else
  246. 204 #define mat3_sub mat3
  247. 205 #endif
  248. 206
  249. 207 #if __VERSION__ <= 140
  250. 208 float determinant(mat2 m) {
  251. 209 return m[0][0] * m[1][1] - m[1][0] * m[0][1];
  252. 210 }
  253. 211
  254. 212 float determinant(mat3 m) {
  255. 213 return + m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1])
  256. 214 - m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0])
  257. 215 + m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]);
  258. 216 }
  259. 217 #endif
  260. 218
  261. 219 #if __VERSION__ <= 130
  262. 220 mat2 inverse(mat2 m) {
  263. 221 return mat2(m[1][1], -m[0][1], -m[1][0], m[0][0]) / determinant(m);
  264. 222 }
  265. 223
  266. 224 mat3 inverse(mat3 m) {
  267. 225 return mat3(
  268. 226 + (m[1][1] * m[2][2] - m[2][1] * m[1][2]),
  269. 227 - (m[1][0] * m[2][2] - m[2][0] * m[1][2]),
  270. 228 + (m[1][0] * m[2][1] - m[2][0] * m[1][1]),
  271. 229 - (m[0][1] * m[2][2] - m[2][1] * m[0][2]),
  272. 230 + (m[0][0] * m[2][2] - m[2][0] * m[0][2]),
  273. 231 - (m[0][0] * m[2][1] - m[2][0] * m[0][1]),
  274. 232 + (m[0][1] * m[1][2] - m[1][1] * m[0][2]),
  275. 233 - (m[0][0] * m[1][2] - m[1][0] * m[0][2]),
  276. 234 + (m[0][0] * m[1][1] - m[1][0] * m[0][1])) / determinant(m);
  277. 235 }
  278. 236 #endif
  279. 237 // -- end import Common/ShaderLib/GLSLCompat.glsllib --
  280. 238 // -- begin import Common/ShaderLib/MultiSample.glsllib --
  281. 239
  282. 240 uniform int m_NumSamples;
  283. 241 uniform int m_NumSamplesDepth;
  284. 242
  285. 243 #ifdef RESOLVE_MS
  286. 244 #define COLORTEXTURE sampler2DMS
  287. 245 #else
  288. 246 #define COLORTEXTURE sampler2D
  289. 247 #endif
  290. 248
  291. 249 #ifdef RESOLVE_DEPTH_MS
  292. 250 #define DEPTHTEXTURE sampler2DMS
  293. 251 #else
  294. 252 #define DEPTHTEXTURE sampler2D
  295. 253 #endif
  296. 254
  297. 255 // NOTE: Only define multisample functions if multisample is available
  298. 256 #if defined(GL_ARB_texture_multisample) || (defined GL_ES && __VERSION__>=310)
  299. 257 vec4 textureFetch(in sampler2DMS tex,in vec2 texC, in int numSamples){
  300. 258 ivec2 iTexC = ivec2(texC * vec2(textureSize(tex)));
  301. 259 vec4 color = vec4(0.0);
  302. 260 for (int i = 0; i < numSamples; i++){
  303. 261 color += texelFetch(tex, iTexC, i);
  304. 262 }
  305. 263 return color / float(numSamples);
  306. 264 }
  307. 265
  308. 266 vec4 fetchTextureSample(in sampler2DMS tex,in vec2 texC,in int sampleId){
  309. 267 ivec2 iTexC = ivec2(texC * vec2(textureSize(tex)));
  310. 268 return texelFetch(tex, iTexC, sampleId);
  311. 269 }
  312. 270
  313. 271 vec4 getColor(in sampler2DMS tex, in vec2 texC){
  314. 272 return textureFetch(tex, texC, m_NumSamples);
  315. 273 }
  316. 274
  317. 275 vec4 getColorSingle(in sampler2DMS tex, in vec2 texC){
  318. 276 ivec2 iTexC = ivec2(texC * vec2(textureSize(tex)));
  319. 277 return texelFetch(tex, iTexC, 0);
  320. 278 }
  321. 279
  322. 280 vec4 getDepth(in sampler2DMS tex,in vec2 texC){
  323. 281 return textureFetch(tex,texC,m_NumSamplesDepth);
  324. 282 }
  325. 283
  326. 284 #endif
  327. 285
  328. 286 vec4 fetchTextureSample(in sampler2D tex,in vec2 texC,in int sampleId){
  329. 287 return texture2D(tex,texC);
  330. 288 }
  331. 289
  332. 290 vec4 getColor(in sampler2D tex, in vec2 texC){
  333. 291 return texture2D(tex,texC);
  334. 292 }
  335. 293
  336. 294 vec4 getColorSingle(in sampler2D tex, in vec2 texC){
  337. 295 return texture2D(tex, texC);
  338. 296 }
  339. 297
  340. 298 vec4 getDepth(in sampler2D tex,in vec2 texC){
  341. 299 return texture2D(tex,texC);
  342. 300 }
  343. 301 // -- end import Common/ShaderLib/MultiSample.glsllib --
  344. 302 // -- begin import Common/ShaderLib/Shadows.glsllib --
  345. 303 #if __VERSION__ >= 130
  346. 304 // Because gpu_shader5 is actually where those
  347. 305 // gather functions are declared to work on shadow maps
  348. 306 // This "if" statement is useless as jme3 changes line ordering, so all extensions are tried to be loaded
  349. 307 #ifdef GL_ES
  350. 308 #else
  351. 309 #endif
  352. 310
  353. 311 #define IVEC2 ivec2
  354. 312 #ifdef HARDWARE_SHADOWS
  355. 313 #define SHADOWMAP sampler2DShadow
  356. 314 #define SHADOWCOMPAREOFFSET(tex,coord,offset) textureProjOffset(tex, coord, offset)
  357. 315 #define SHADOWCOMPARE(tex,coord) textureProj(tex, coord)
  358. 316 #if defined GL_ES && __VERSION__ <= 300
  359. 317 #define SHADOWGATHER(tex,coord) step(coord.z, textureGather(tex, coord.xy))
  360. 318 #else
  361. 319 #define SHADOWGATHER(tex,coord) textureGather(tex, coord.xy, coord.z)
  362. 320 #endif
  363. 321 #else
  364. 322 #define SHADOWMAP sampler2D
  365. 323 #define SHADOWCOMPAREOFFSET(tex,coord,offset) step(coord.z, textureProjOffset(tex, coord, offset).r)
  366. 324 #define SHADOWCOMPARE(tex,coord) step(coord.z, textureProj(tex, coord).r)
  367. 325 #define SHADOWGATHER(tex,coord) step(coord.z, textureGather(tex, coord.xy))
  368. 326 #endif
  369. 327
  370. 328 #if FILTER_MODE == 10
  371. 329 #define GETSHADOW Shadow_Nearest
  372. 330 #define KERNEL 1.0
  373. 331 #elif FILTER_MODE == 1
  374. 332 #ifdef HARDWARE_SHADOWS
  375. 333 #define GETSHADOW Shadow_Nearest
  376. 334 #else
  377. 335 #define GETSHADOW Shadow_DoBilinear_2x2
  378. 336 #endif
  379. 337 #define KERNEL 1.0
  380. 338 #endif
  381. 339 #else
  382. 340 #define IVEC2 vec2
  383. 341 #if defined GL_ES
  384. 342 #define SHADOWMAP sampler2D
  385. 343 #define SHADOWCOMPARE(tex,coord) step(coord.z, texture2DProj(tex, coord).r)
  386. 344 #elif defined HARDWARE_SHADOWS
  387. 345 #define SHADOWMAP sampler2DShadow
  388. 346 #define SHADOWCOMPARE(tex,coord) shadow2DProj(tex, coord).r
  389. 347 #else
  390. 348 #define SHADOWMAP sampler2D
  391. 349 #define SHADOWCOMPARE(tex,coord) step(coord.z, texture2DProj(tex, coord).r)
  392. 350 #endif
  393. 351
  394. 352 #if FILTER_MODE == 10
  395. 353 #define GETSHADOW Shadow_DoShadowCompare
  396. 354 #define KERNEL 1.0
  397. 355 #elif FILTER_MODE == 1
  398. 356 #ifdef HARDWARE_SHADOWS
  399. 357 #define GETSHADOW Shadow_DoShadowCompare
  400. 358 #else
  401. 359 #define GETSHADOW Shadow_DoBilinear_2x2
  402. 360 #endif
  403. 361 #define KERNEL 1.0
  404. 362 #endif
  405. 363
  406. 364
  407. 365 #endif
  408. 366
  409. 367 #if (FILTER_MODE == 2)
  410. 368 #define GETSHADOW Shadow_DoDither_2x2
  411. 369 #define KERNEL 1.0
  412. 370 #elif FILTER_MODE == 3
  413. 371 #define GETSHADOW Shadow_DoPCF
  414. 372 #define KERNEL 4.0
  415. 373 #elif FILTER_MODE == 4
  416. 374 #define GETSHADOW Shadow_DoPCFPoisson
  417. 375 #define KERNEL 4.0
  418. 376 #elif FILTER_MODE == 5
  419. 377 #define GETSHADOW Shadow_DoPCF
  420. 378 #define KERNEL 8.0
  421. 379 #endif
  422. 380
  423. 381 uniform SHADOWMAP m_ShadowMap0;
  424. 382 uniform SHADOWMAP m_ShadowMap1;
  425. 383 uniform SHADOWMAP m_ShadowMap2;
  426. 384 uniform SHADOWMAP m_ShadowMap3;
  427. 385 #ifdef POINTLIGHT
  428. 386 uniform SHADOWMAP m_ShadowMap4;
  429. 387 uniform SHADOWMAP m_ShadowMap5;
  430. 388 #endif
  431. 389
  432. 390 #ifdef PSSM
  433. 391 uniform vec4 m_Splits;
  434. 392 #endif
  435. 393
  436. 394 uniform float m_ShadowIntensity;
  437. 395
  438. 396 const vec2 pixSize2 = vec2(1.0 / SHADOWMAP_SIZE);
  439. 397 float shadowBorderScale = 1.0;
  440. 398
  441. 399 float Shadow_DoShadowCompare(in SHADOWMAP tex,in vec4 projCoord){
  442. 400 return SHADOWCOMPARE(tex, projCoord);
  443. 401 }
  444. 402
  445. 403 float Shadow_BorderCheck(in vec2 coord){
  446. 404 #ifdef GL_ES
  447. 405 return 0.0;
  448. 406 #else
  449. 407 // Fastest, "hack" method (uses 4-5 instructions)
  450. 408 vec4 t = vec4(coord.xy, 0.0, 1.0);
  451. 409 t = step(t.wwxy, t.xyzz);
  452. 410 return dot(t,t);
  453. 411 #endif
  454. 412 }
  455. 413
  456. 414 float Shadow_Nearest(in SHADOWMAP tex,in vec4 projCoord){
  457. 415 float border = Shadow_BorderCheck(projCoord.xy);
  458. 416 if (border > 0.0){
  459. 417 return 1.0;
  460. 418 }
  461. 419 return SHADOWCOMPARE(tex, projCoord);
  462. 420 }
  463. 421
  464. 422 float Shadow_DoShadowCompareOffset(in SHADOWMAP tex,in vec4 projCoord,in vec2 offset){
  465. 423 vec4 coord = vec4(projCoord.xy + offset.xy * pixSize2 * shadowBorderScale, projCoord.zw);
  466. 424 return SHADOWCOMPARE(tex, coord);
  467. 425 }
  468. 426
  469. 427
  470. 428 float Shadow_DoDither_2x2(in SHADOWMAP tex, in vec4 projCoord){
  471. 429 float border = Shadow_BorderCheck(projCoord.xy);
  472. 430 if (border > 0.0)
  473. 431 return 1.0;
  474. 432
  475. 433 float shadow = 0.0;
  476. 434 //IVEC2 o = IVEC2(mod(floor(gl_FragCoord.xy), 2.0));
  477. 435 vec2 o = vec2(IVEC2(mod(floor(gl_FragCoord.xy), 2.0))); //Strict type checking in GLSL ES
  478. 436 shadow += Shadow_DoShadowCompareOffset(tex, projCoord, (vec2(-1.5, 1.5)+o));
  479. 437 shadow += Shadow_DoShadowCompareOffset(tex, projCoord, (vec2( 0.5, 1.5)+o));
  480. 438 shadow += Shadow_DoShadowCompareOffset(tex, projCoord, (vec2(-1.5, -0.5)+o));
  481. 439 shadow += Shadow_DoShadowCompareOffset(tex, projCoord, (vec2( 0.5, -0.5)+o));
  482. 440 shadow *= 0.25;
  483. 441 return shadow;
  484. 442 }
  485. 443
  486. 444 float Shadow_DoBilinear_2x2(in SHADOWMAP tex, in vec4 projCoord){
  487. 445 float border = Shadow_BorderCheck(projCoord.xy);
  488. 446 if (border > 0.0){
  489. 447 return 1.0;
  490. 448 }
  491. 449
  492. 450 vec4 gather = vec4(0.0);
  493. 451 #if __VERSION__ >= 130
  494. 452 #if defined GL_ARB_gpu_shader5 || defined GL_OES_gpu_shader5
  495. 453 vec4 coord = vec4(projCoord.xyz / projCoord.www,0.0);
  496. 454 gather = SHADOWGATHER(tex, coord);
  497. 455 #else
  498. 456 gather.x = SHADOWCOMPAREOFFSET(tex, projCoord, ivec2(0, 1));
  499. 457 gather.y = SHADOWCOMPAREOFFSET(tex, projCoord, ivec2(1, 1));
  500. 458 gather.z = SHADOWCOMPAREOFFSET(tex, projCoord, ivec2(1, 0));
  501. 459 gather.w = SHADOWCOMPAREOFFSET(tex, projCoord, ivec2(0, 0));
  502. 460 #endif
  503. 461 #else
  504. 462 gather.x = Shadow_DoShadowCompareOffset(tex, projCoord, vec2(0.0, 0.0));
  505. 463 gather.y = Shadow_DoShadowCompareOffset(tex, projCoord, vec2(1.0, 0.0));
  506. 464 gather.z = Shadow_DoShadowCompareOffset(tex, projCoord, vec2(0.0, 1.0));
  507. 465 gather.w = Shadow_DoShadowCompareOffset(tex, projCoord, vec2(1.0, 1.0));
  508. 466 #endif
  509. 467
  510. 468 vec2 f = fract( projCoord.xy * SHADOWMAP_SIZE );
  511. 469 vec2 mx = mix( gather.wx, gather.zy, f.x );
  512. 470 return mix( mx.x, mx.y, f.y );
  513. 471 }
  514. 472
  515. 473 float Shadow_DoPCF(in SHADOWMAP tex,in vec4 projCoord){
  516. 474
  517. 475 float shadow = 0.0;
  518. 476 float border = Shadow_BorderCheck(projCoord.xy);
  519. 477 if (border > 0.0)
  520. 478 return 1.0;
  521. 479
  522. 480 const float bound = (KERNEL * 0.5 - 0.5 ) * PCFEDGE;
  523. 481 for (float y = -bound; y <= bound; y += PCFEDGE){
  524. 482 for (float x = -bound; x <= bound; x += PCFEDGE){
  525. 483 #if __VERSION__ < 130
  526. 484 shadow += clamp(Shadow_DoShadowCompareOffset(tex,projCoord,vec2(x,y)) + border, 0.0, 1.0);
  527. 485 #else
  528. 486 shadow += Shadow_DoShadowCompareOffset(tex, projCoord, vec2(x,y));
  529. 487 #endif
  530. 488 }
  531. 489 }
  532. 490
  533. 491 shadow = shadow / (KERNEL * KERNEL);
  534. 492 return shadow;
  535. 493 }
  536. 494
  537. 495 //12 tap poisson disk
  538. 496 const vec2 poissonDisk0 = vec2(-0.1711046, -0.425016);
  539. 497 const vec2 poissonDisk1 = vec2(-0.7829809, 0.2162201);
  540. 498 const vec2 poissonDisk2 = vec2(-0.2380269, -0.8835521);
  541. 499 const vec2 poissonDisk3 = vec2(0.4198045, 0.1687819);
  542. 500 const vec2 poissonDisk4 = vec2(-0.684418, -0.3186957);
  543. 501 const vec2 poissonDisk5 = vec2(0.6026866, -0.2587841);
  544. 502 const vec2 poissonDisk6 = vec2(-0.2412762, 0.3913516);
  545. 503 const vec2 poissonDisk7 = vec2(0.4720655, -0.7664126);
  546. 504 const vec2 poissonDisk8 = vec2(0.9571564, 0.2680693);
  547. 505 const vec2 poissonDisk9 = vec2(-0.5238616, 0.802707);
  548. 506 const vec2 poissonDisk10 = vec2(0.5653144, 0.60262);
  549. 507 const vec2 poissonDisk11 = vec2(0.0123658, 0.8627419);
  550. 508
  551. 509
  552. 510 float Shadow_DoPCFPoisson(in SHADOWMAP tex, in vec4 projCoord){
  553. 511 float shadow = 0.0;
  554. 512 float border = Shadow_BorderCheck(projCoord.xy);
  555. 513 if (border > 0.0){
  556. 514 return 1.0;
  557. 515 }
  558. 516
  559. 517 vec2 texelSize = pixSize2 * 4.0 * PCFEDGE * shadowBorderScale;
  560. 518
  561. 519 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk0 * texelSize, projCoord.zw));
  562. 520 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk1 * texelSize, projCoord.zw));
  563. 521 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk2 * texelSize, projCoord.zw));
  564. 522 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk3 * texelSize, projCoord.zw));
  565. 523 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk4 * texelSize, projCoord.zw));
  566. 524 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk5 * texelSize, projCoord.zw));
  567. 525 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk6 * texelSize, projCoord.zw));
  568. 526 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk7 * texelSize, projCoord.zw));
  569. 527 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk8 * texelSize, projCoord.zw));
  570. 528 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk9 * texelSize, projCoord.zw));
  571. 529 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk10 * texelSize, projCoord.zw));
  572. 530 shadow += SHADOWCOMPARE(tex, vec4(projCoord.xy + poissonDisk11 * texelSize, projCoord.zw));
  573. 531
  574. 532 //this is divided by 12
  575. 533 return shadow * 0.08333333333;
  576. 534 }
  577. 535
  578. 536 #ifdef POINTLIGHT
  579. 537 float getPointLightShadows(in vec4 worldPos,in vec3 lightPos,
  580. 538 in SHADOWMAP shadowMap0,in SHADOWMAP shadowMap1,in SHADOWMAP shadowMap2,in SHADOWMAP shadowMap3,in SHADOWMAP shadowMap4,in SHADOWMAP shadowMap5,
  581. 539 in vec4 projCoord0,in vec4 projCoord1,in vec4 projCoord2,in vec4 projCoord3,in vec4 projCoord4,in vec4 projCoord5){
  582. 540 float shadow = 1.0;
  583. 541 vec3 vect = worldPos.xyz - lightPos;
  584. 542 vec3 absv= abs(vect);
  585. 543 float maxComp = max(absv.x,max(absv.y,absv.z));
  586. 544 if(maxComp == absv.y){
  587. 545 if(vect.y < 0.0){
  588. 546 shadow = GETSHADOW(shadowMap0, projCoord0 / projCoord0.w);
  589. 547 }else{
  590. 548 shadow = GETSHADOW(shadowMap1, projCoord1 / projCoord1.w);
  591. 549 }
  592. 550 }else if(maxComp == absv.z){
  593. 551 if(vect.z < 0.0){
  594. 552 shadow = GETSHADOW(shadowMap2, projCoord2 / projCoord2.w);
  595. 553 }else{
  596. 554 shadow = GETSHADOW(shadowMap3, projCoord3 / projCoord3.w);
  597. 555 }
  598. 556 }else if(maxComp == absv.x){
  599. 557 if(vect.x < 0.0){
  600. 558 shadow = GETSHADOW(shadowMap4, projCoord4 / projCoord4.w);
  601. 559 }else{
  602. 560 shadow = GETSHADOW(shadowMap5, projCoord5 / projCoord5.w);
  603. 561 }
  604. 562 }
  605. 563 return shadow;
  606. 564 }
  607. 565 #else
  608. 566 #ifdef PSSM
  609. 567 float getDirectionalLightShadows(in vec4 splits,in float shadowPosition,
  610. 568 in SHADOWMAP shadowMap0,in SHADOWMAP shadowMap1,in SHADOWMAP shadowMap2,in SHADOWMAP shadowMap3,
  611. 569 in vec4 projCoord0,in vec4 projCoord1,in vec4 projCoord2,in vec4 projCoord3){
  612. 570 float shadow = 1.0;
  613. 571 if(shadowPosition < splits.x){
  614. 572 shadow = GETSHADOW(shadowMap0, projCoord0 );
  615. 573 }else if( shadowPosition < splits.y){
  616. 574 shadowBorderScale = 0.5;
  617. 575 shadow = GETSHADOW(shadowMap1, projCoord1);
  618. 576 }else if( shadowPosition < splits.z){
  619. 577 shadowBorderScale = 0.25;
  620. 578 shadow = GETSHADOW(shadowMap2, projCoord2);
  621. 579 }else if( shadowPosition < splits.w){
  622. 580 shadowBorderScale = 0.125;
  623. 581 shadow = GETSHADOW(shadowMap3, projCoord3);
  624. 582 }
  625. 583 return shadow;
  626. 584 }
  627. 585 #else
  628. 586 float getSpotLightShadows(in SHADOWMAP shadowMap,in vec4 projCoord){
  629. 587 float shadow = 1.0;
  630. 588 projCoord /= projCoord.w;
  631. 589 shadow = GETSHADOW(shadowMap,projCoord);
  632. 590
  633. 591 //a small falloff to make the shadow blend nicely into the not lighten
  634. 592 //we translate the texture coordinate value to a -1,1 range so the length
  635. 593 //of the texture coordinate vector is actually the radius of the lighten area on the ground
  636. 594 projCoord = projCoord * 2.0 - 1.0;
  637. 595 float fallOff = ( length(projCoord.xy) - 0.9 ) / 0.1;
  638. 596 return mix(shadow,1.0,clamp(fallOff,0.0,1.0));
  639. 597 }
  640. 598 #endif
  641. 599 #endif
  642. 600 // -- end import Common/ShaderLib/Shadows.glsllib --
  643. 601
  644. 602 uniform COLORTEXTURE m_Texture;
  645. 603 uniform DEPTHTEXTURE m_DepthTexture;
  646. 604 uniform mat4 m_ViewProjectionMatrixInverse;
  647. 605 uniform vec4 m_ViewProjectionMatrixRow2;
  648. 606
  649. 607 varying vec2 texCoord;
  650. 608
  651. 609 const mat4 biasMat = mat4(0.5, 0.0, 0.0, 0.0,
  652. 610 0.0, 0.5, 0.0, 0.0,
  653. 611 0.0, 0.0, 0.5, 0.0,
  654. 612 0.5, 0.5, 0.5, 1.0);
  655. 613
  656. 614 uniform mat4 m_LightViewProjectionMatrix0;
  657. 615 uniform mat4 m_LightViewProjectionMatrix1;
  658. 616 uniform mat4 m_LightViewProjectionMatrix2;
  659. 617 uniform mat4 m_LightViewProjectionMatrix3;
  660. 618
  661. 619 uniform vec2 g_ResolutionInverse;
  662. 620
  663. 621 #ifdef POINTLIGHT
  664. 622 uniform vec3 m_LightPos;
  665. 623 uniform mat4 m_LightViewProjectionMatrix4;
  666. 624 uniform mat4 m_LightViewProjectionMatrix5;
  667. 625 #else
  668. 626 uniform vec3 m_LightDir;
  669. 627 #ifndef PSSM
  670. 628 uniform vec3 m_LightPos;
  671. 629 #endif
  672. 630 #endif
  673. 631
  674. 632 #ifdef FADE
  675. 633 uniform vec2 m_FadeInfo;
  676. 634 #endif
  677. 635
  678. 636 vec3 getPosition(in float depth, in vec2 uv){
  679. 637 vec4 pos = vec4(uv, depth, 1.0) * 2.0 - 1.0;
  680. 638 pos = m_ViewProjectionMatrixInverse * pos;
  681. 639 return pos.xyz / pos.w;
  682. 640 }
  683. 641
  684. 642 #ifndef BACKFACE_SHADOWS
  685. 643 vec3 approximateNormal(in float depth,in vec4 worldPos,in vec2 texCoord, in int numSample){
  686. 644 float step = g_ResolutionInverse.x ;
  687. 645 float stepy = g_ResolutionInverse.y ;
  688. 646 float depth1 = fetchTextureSample(m_DepthTexture,texCoord + vec2(-step,stepy),numSample).r;
  689. 647 float depth2 = fetchTextureSample(m_DepthTexture,texCoord + vec2(step,stepy),numSample).r;
  690. 648 vec3 v1, v2;
  691. 649 vec4 worldPos1 = vec4(getPosition(depth1,texCoord + vec2(-step,stepy)),1.0);
  692. 650 vec4 worldPos2 = vec4(getPosition(depth2,texCoord + vec2(step,stepy)),1.0);
  693. 651
  694. 652 v1 = normalize((worldPos1 - worldPos)).xyz;
  695. 653 v2 = normalize((worldPos2 - worldPos)).xyz;
  696. 654 return normalize(cross(v2, v1));
  697. 655
  698. 656 }
  699. 657 #endif
  700. 658
  701. 659 vec4 main_multiSample(in int numSample){
  702. 660 float depth = fetchTextureSample(m_DepthTexture,texCoord,numSample).r;//getDepth(m_DepthTexture,texCoord).r;
  703. 661 vec4 color = fetchTextureSample(m_Texture,texCoord,numSample);
  704. 662
  705. 663 //Discard shadow computation on the sky
  706. 664 if(depth == 1.0){
  707. 665 return color;
  708. 666 }
  709. 667
  710. 668 // get the vertex in world space
  711. 669 vec4 worldPos = vec4(getPosition(depth,texCoord),1.0);
  712. 670
  713. 671
  714. 672 vec3 lightDir;
  715. 673 #ifdef PSSM
  716. 674 lightDir = m_LightDir;
  717. 675 #else
  718. 676 lightDir = worldPos.xyz - m_LightPos;
  719. 677 #endif
  720. 678
  721. 679 #ifndef BACKFACE_SHADOWS
  722. 680 vec3 normal = approximateNormal(depth, worldPos, texCoord, numSample);
  723. 681 float ndotl = dot(normal, lightDir);
  724. 682 if(ndotl > 0.0){
  725. 683 return color;
  726. 684 }
  727. 685 #endif
  728. 686
  729. 687 #if (!defined(POINTLIGHT) && !defined(PSSM))
  730. 688 if( dot(m_LightDir,lightDir)<0){
  731. 689 return color;
  732. 690 }
  733. 691 #endif
  734. 692
  735. 693 // populate the light view matrices array and convert vertex to light viewProj space
  736. 694 vec4 projCoord0 = biasMat * m_LightViewProjectionMatrix0 * worldPos;
  737. 695 vec4 projCoord1 = biasMat * m_LightViewProjectionMatrix1 * worldPos;
  738. 696 vec4 projCoord2 = biasMat * m_LightViewProjectionMatrix2 * worldPos;
  739. 697 vec4 projCoord3 = biasMat * m_LightViewProjectionMatrix3 * worldPos;
  740. 698 #ifdef POINTLIGHT
  741. 699 vec4 projCoord4 = biasMat * m_LightViewProjectionMatrix4 * worldPos;
  742. 700 vec4 projCoord5 = biasMat * m_LightViewProjectionMatrix5 * worldPos;
  743. 701 #endif
  744. 702
  745. 703 float shadow = 1.0;
  746. 704
  747. 705 #if defined(PSSM) || defined(FADE)
  748. 706 float shadowPosition = m_ViewProjectionMatrixRow2.x * worldPos.x + m_ViewProjectionMatrixRow2.y * worldPos.y + m_ViewProjectionMatrixRow2.z * worldPos.z + m_ViewProjectionMatrixRow2.w;
  749. 707 #endif
  750. 708
  751. 709 #ifdef POINTLIGHT
  752. 710 shadow = getPointLightShadows(worldPos, m_LightPos,
  753. 711 m_ShadowMap0,m_ShadowMap1,m_ShadowMap2,m_ShadowMap3,m_ShadowMap4,m_ShadowMap5,
  754. 712 projCoord0, projCoord1, projCoord2, projCoord3, projCoord4, projCoord5);
  755. 713 #else
  756. 714 #ifdef PSSM
  757. 715 shadow = getDirectionalLightShadows(m_Splits, shadowPosition,
  758. 716 m_ShadowMap0,m_ShadowMap1,m_ShadowMap2,m_ShadowMap3,
  759. 717 projCoord0, projCoord1, projCoord2, projCoord3);
  760. 718 #else
  761. 719 //spotlight
  762. 720 shadow = getSpotLightShadows(m_ShadowMap0,projCoord0);
  763. 721 #endif
  764. 722 #endif
  765. 723
  766. 724
  767. 725 #ifdef FADE
  768. 726 shadow = clamp(max(0.0,mix(shadow, 1.0 ,(shadowPosition - m_FadeInfo.x) * m_FadeInfo.y)),0.0,1.0);
  769. 727 #endif
  770. 728
  771. 729 shadow= shadow * m_ShadowIntensity + (1.0 - m_ShadowIntensity);
  772. 730 return color * vec4(shadow, shadow, shadow, 1.0);
  773. 731 }
  774. 732
  775. 733 void main() {
  776. 734
  777. 735 #ifdef RESOLVE_MS
  778. 736 vec4 color = vec4(0.0);
  779. 737 for (int i = 0; i < m_NumSamples; i++){
  780. 738 color += main_multiSample(i);
  781. 739 }
  782. 740 gl_FragColor = color / m_NumSamples;
  783. 741 #else
  784. 742 gl_FragColor = main_multiSample(0);
  785. 743 #endif
  786. 744 }
  787.  
  788. Mar 07, 2024 10:31:08 PM com.jme3.app.LegacyApplication handleError
  789. SEVERE: Uncaught exception thrown in Thread[jME3 Main,6,main]
  790. com.jme3.renderer.RendererException: compile error in: ShaderSource[name=Common/MatDefs/Shadow/PostShadowFilter15.frag, defines, type=Fragment, language=GLSL150]
  791. Fragment shader failed to compile with the following errors:
  792. WARNING: 0:11: warning(#62) enable/warn/disable extension is not found. Extension "GL_OES_gpu_shader5" is not supported
  793. ERROR: 0:17: error(#228) Type should be float or int
  794. ERROR: 0:18: error(#228) Type should be float or int
  795. ERROR: 0:19: error(#228) Type should be float or int
  796. ERROR: 0:20: error(#228) Type should be float or int
  797. ERROR: 0:21: error(#228) Type should be float or int
  798. ERROR: error(#273) 5 compilation errors. No code generated
  799.  
  800.  
  801. at com.jme3.renderer.opengl.GLRenderer.updateShaderSourceData(GLRenderer.java:1658)
  802. at com.jme3.renderer.opengl.GLRenderer.updateShaderData(GLRenderer.java:1685)
  803. at com.jme3.renderer.opengl.GLRenderer.setShader(GLRenderer.java:1750)
  804. at com.jme3.material.logic.DefaultTechniqueDefLogic.render(DefaultTechniqueDefLogic.java:97)
  805. at com.jme3.material.Technique.render(Technique.java:168)
  806. at com.jme3.material.Material.render(Material.java:1090)
  807. at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:695)
  808. at com.jme3.post.FilterPostProcessor.renderProcessing(FilterPostProcessor.java:235)
  809. at com.jme3.post.FilterPostProcessor.renderFilterChain(FilterPostProcessor.java:321)
  810. at com.jme3.post.FilterPostProcessor.postFrame(FilterPostProcessor.java:342)
  811. at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:1238)
  812. at com.jme3.renderer.RenderManager.render(RenderManager.java:1292)
  813. at com.jme3.app.SimpleApplication.update(SimpleApplication.java:283)
  814. at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:163)
  815. at com.jme3.system.lwjgl.LwjglCanvas.runLoop(LwjglCanvas.java:231)
  816. at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:245)
  817. at java.base/java.lang.Thread.run(Thread.java:833)
  818.  
  819. Mar 07, 2024 10:31:08 PM com.jme3.system.JmeSystemDelegate lambda$new$0
  820. WARNING: JmeDialogsFactory implementation not found.
  821. Uncaught exception thrown in Thread[jME3 Main,6,main]
  822. RendererException: compile error in: ShaderSource[name=Common/MatDefs/Shadow/PostShadowFilter15.frag, defines, type=Fragment, language=GLSL150]
  823. Fragment shader failed to compile with the following errors:
  824. WARNING: 0:11: warning(#62) enable/warn/disable extension is not found. Extension "GL_OES_gpu_shader5" is not supported
  825. ERROR: 0:17: error(#228) Type should be float or int
  826. ERROR: 0:18: error(#228) Type should be float or int
  827. ERROR: 0:19: error(#228) Type should be float or int
  828. ERROR: 0:20: error(#228) Type should be float or int
  829. ERROR: 0:21: error(#228) Type should be float or int
  830. ERROR: error(#273) 5 compilation errors. No code generated
  831.  
  832.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement