	.file	"132953278.c"
	.intel_syntax noprefix
	.text
	.globl	datatoc_volumetric_frag_glsl_size
	.data
	.align 4
	.type	datatoc_volumetric_frag_glsl_size, @object
	.size	datatoc_volumetric_frag_glsl_size, 4
datatoc_volumetric_frag_glsl_size:
	.long	1907
	.globl	datatoc_volumetric_frag_glsl
	.align 32
	.type	datatoc_volumetric_frag_glsl, @object
	.size	datatoc_volumetric_frag_glsl, 1908
datatoc_volumetric_frag_glsl:
	.ascii	"\r\n/* Based on Frosbite Unified Volumetric.\r\n * https://w"
	.ascii	"ww.ea.com/frostbite/news/physically-based-unified-volumetric"
	.ascii	"-rendering-in-frostbite */\r\n\r\n#define NODETREE_EXEC\r\n\r"
	.ascii	"\n#ifdef MESH_SHADER\r\nuniform mat4 volumeObjectMatrix;\r\n"
	.ascii	"uniform vec3 volumeOrcoLoc;\r\nuniform vec3 volumeOrcoSize;\r"
	.ascii	"\n#endif\r\n\r\nflat in int slice;\r\n\r\n/* Warning: theses"
	.ascii	" are not attributes, theses are global vars. */\r\nvec3 worl"
	.ascii	"dPosition = vec3(0.0);\r\nvec3 viewPosition = vec3(0.0);\r\n"
	.ascii	"vec3 viewNormal = vec3(0.0);\r\n#ifdef MESH_SHADER\r\nvec3 v"
	.ascii	"olumeObjectLocalCoord = vec3(0.0);\r\n#endif\r\n\r\nlayout(l"
	.ascii	"ocation = 0) out vec4 volumeScattering;\r\nlayout(location ="
	.ascii	" 1) out vec4 volumeExtinction;\r\nlayout(location = 2) out v"
	.ascii	"ec4 volumeEmissive;\r\nlayout(location = 3) out vec4 volumeP"
	.ascii	"hase;\r\n\r\n/* Store volumetric properties into the froxel "
	.ascii	"textures. */\r\n\r\nvoid main()\r\n{\r\n\tivec3 volume_cell "
	.ascii	"= ivec3(gl_FragCoord.xy, slice);\r\n\tvec3 ndc_cell = volume"
	.ascii	"_to_ndc((vec3(volume_cell) + volJitter.xyz) * volInvTexSize."
	.ascii	"xyz);\r\n\r\n\tviewPosition = get_view_space_from_depth(ndc_"
	.ascii	"cell.xy, ndc_cell.z);\r\n\tworldPosition = transform_point(V"
	.ascii	"iewMatrixInverse, viewPosition);\r\n#ifdef MESH_SHADER\r\n\t"
	.ascii	"volumeObjectLocalCoord = transform_point(volumeObjectMatrix,"
	.ascii	" worldPosition);\r\n\tvolumeObjectLocalCoord = (volumeObject"
	.ascii	"LocalCoord - volumeOrcoLoc + volumeOrcoSize) / (volumeOrcoSi"
	.ascii	"ze * 2.0);\r\n\r\n\tif (any(lessThan(volumeObjectLocalCoord,"
	.ascii	" vec3(0.0))) ||\r\n\t    any(greaterThan(volumeObjectLocalCo"
	.ascii	"ord, vec3(1.0))))\r\n\t    discard;\r\n#endif\r\n\r\n#ifdef "
	.ascii	"CLEAR\r\n\tClosure cl = CLOSURE_DEFAULT;\r\n#else\r\n\tClosu"
	.ascii	"re cl = nodetree_exec();\r\n#endif\r\n\r\n\tvolumeScattering"
	.ascii	" = vec4(cl.scatter, 1.0);\r\n\tvolumeExtinction = vec4(max(v"
	.ascii	"ec3(1e-4), cl.absorption +"
	.string	" cl.scatter), 1.0);\r\n\tvolumeEmissive = vec4(cl.emission, 1.0);\r\n\r\n\t/* Do not add phase weight if no scattering. */\r\n\tif (all(equal(cl.scatter, vec3(0.0)))) {\r\n\t\tvolumePhase = vec4(0.0);\r\n\t}\r\n\telse {\r\n\t\tvolumePhase = vec4(cl.anisotropy, vec3(1.0));\r\n\t}\r\n}\r\n"
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"132953278.c"
	.text
	.global	datatoc_volumetric_frag_glsl_size
	.data
	.align	2
	.type	datatoc_volumetric_frag_glsl_size, %object
	.size	datatoc_volumetric_frag_glsl_size, 4
datatoc_volumetric_frag_glsl_size:
	.word	1907
	.global	datatoc_volumetric_frag_glsl
	.align	2
	.type	datatoc_volumetric_frag_glsl, %object
	.size	datatoc_volumetric_frag_glsl, 1908
datatoc_volumetric_frag_glsl:
	.ascii	"\015\012/* Based on Frosbite Unified Volumetric.\015"
	.ascii	"\012 * https://www.ea.com/frostbite/news/physically"
	.ascii	"-based-unified-volumetric-rendering-in-frostbite */"
	.ascii	"\015\012\015\012#define NODETREE_EXEC\015\012\015\012"
	.ascii	"#ifdef MESH_SHADER\015\012uniform mat4 volumeObject"
	.ascii	"Matrix;\015\012uniform vec3 volumeOrcoLoc;\015\012u"
	.ascii	"niform vec3 volumeOrcoSize;\015\012#endif\015\012\015"
	.ascii	"\012flat in int slice;\015\012\015\012/* Warning: t"
	.ascii	"heses are not attributes, theses are global vars. *"
	.ascii	"/\015\012vec3 worldPosition = vec3(0.0);\015\012vec"
	.ascii	"3 viewPosition = vec3(0.0);\015\012vec3 viewNormal "
	.ascii	"= vec3(0.0);\015\012#ifdef MESH_SHADER\015\012vec3 "
	.ascii	"volumeObjectLocalCoord = vec3(0.0);\015\012#endif\015"
	.ascii	"\012\015\012layout(location = 0) out vec4 volumeSca"
	.ascii	"ttering;\015\012layout(location = 1) out vec4 volum"
	.ascii	"eExtinction;\015\012layout(location = 2) out vec4 v"
	.ascii	"olumeEmissive;\015\012layout(location = 3) out vec4"
	.ascii	" volumePhase;\015\012\015\012/* Store volumetric pr"
	.ascii	"operties into the froxel textures. */\015\012\015\012"
	.ascii	"void main()\015\012{\015\012\011ivec3 volume_cell ="
	.ascii	" ivec3(gl_FragCoord.xy, slice);\015\012\011vec3 ndc"
	.ascii	"_cell = volume_to_ndc((vec3(volume_cell) + volJitte"
	.ascii	"r.xyz) * volInvTexSize.xyz);\015\012\015\012\011vie"
	.ascii	"wPosition = get_view_space_from_depth(ndc_cell.xy, "
	.ascii	"ndc_cell.z);\015\012\011worldPosition = transform_p"
	.ascii	"oint(ViewMatrixInverse, viewPosition);\015\012#ifde"
	.ascii	"f MESH_SHADER\015\012\011volumeObjectLocalCoord = t"
	.ascii	"ransform_point(volumeObjectMatrix, worldPosition);\015"
	.ascii	"\012\011volumeObjectLocalCoord = (volumeObjectLocal"
	.ascii	"Coord - volumeOrcoLoc + volumeOrcoSize) / (volumeOr"
	.ascii	"coSize * 2.0);\015\012\015\012\011if (any(lessThan("
	.ascii	"volumeObjectLocalCoord, vec3(0.0))) ||\015\012\011 "
	.ascii	"   any(greaterThan(volumeObjectLocalCoord, vec3(1.0"
	.ascii	"))))\015\012\011    discard;\015\012#endif\015\012\015"
	.ascii	"\012#ifdef CLEAR\015\012\011Closure cl = CLOSURE_DE"
	.ascii	"FAULT;\015\012#else\015\012\011Closure cl = nodetre"
	.ascii	"e_exec();\015\012#endif\015\012\015\012\011volumeSc"
	.ascii	"attering = vec4(cl.scatter, 1.0);\015\012\011volume"
	.ascii	"Extinction = vec4(max(vec3(1e-4), cl.absorption + c"
	.ascii	"l.scatter), 1.0);\015\012\011volumeEmissive = vec4("
	.ascii	"cl.emission, 1.0);\015\012\015\012\011/* Do not add"
	.ascii	" phase weight if no scattering. */\015\012\011if (a"
	.ascii	"ll(equal(cl.scatter, vec3(0.0)))) {\015\012\011\011"
	.ascii	"volumePhase = vec4(0.0);\015\012\011}\015\012\011el"
	.ascii	"se {\015\012\011\011volumePhase = vec4(cl.anisotrop"
	.ascii	"y, vec3(1.0));\015\012\011}\015\012}\015\012\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
