Skip to content

Commit dd9643e

Browse files
authored
Merge pull request #109 from ManifoldFR/topic/shader-enhancements
Shader enhancements
2 parents da8a0e9 + b32d96c commit dd9643e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+359
-2228
lines changed

shaders/compiled/PbrBasic.frag.json

Lines changed: 78 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -7,53 +7,43 @@
77
"kind": "constantBuffer",
88
"elementType": {
99
"kind": "struct",
10-
"name": "MaterialBlock",
10+
"name": "PbrMaterial",
1111
"fields": [
1212
{
13-
"name": "material",
13+
"name": "baseColor",
1414
"type": {
15-
"kind": "struct",
16-
"name": "PbrMaterial",
17-
"fields": [
18-
{
19-
"name": "baseColor",
20-
"type": {
21-
"kind": "vector",
22-
"elementCount": 4,
23-
"elementType": {
24-
"kind": "scalar",
25-
"scalarType": "float32"
26-
}
27-
},
28-
"binding": {"kind": "uniform", "offset": 0, "size": 16, "elementStride": 4}
29-
},
30-
{
31-
"name": "metalness",
32-
"type": {
33-
"kind": "scalar",
34-
"scalarType": "float32"
35-
},
36-
"binding": {"kind": "uniform", "offset": 16, "size": 4, "elementStride": 0}
37-
},
38-
{
39-
"name": "roughness",
40-
"type": {
41-
"kind": "scalar",
42-
"scalarType": "float32"
43-
},
44-
"binding": {"kind": "uniform", "offset": 20, "size": 4, "elementStride": 0}
45-
},
46-
{
47-
"name": "ao",
48-
"type": {
49-
"kind": "scalar",
50-
"scalarType": "float32"
51-
},
52-
"binding": {"kind": "uniform", "offset": 24, "size": 4, "elementStride": 0}
53-
}
54-
]
15+
"kind": "vector",
16+
"elementCount": 4,
17+
"elementType": {
18+
"kind": "scalar",
19+
"scalarType": "float32"
20+
}
5521
},
56-
"binding": {"kind": "uniform", "offset": 0, "size": 32, "elementStride": 0}
22+
"binding": {"kind": "uniform", "offset": 0, "size": 16, "elementStride": 4}
23+
},
24+
{
25+
"name": "metalness",
26+
"type": {
27+
"kind": "scalar",
28+
"scalarType": "float32"
29+
},
30+
"binding": {"kind": "uniform", "offset": 16, "size": 4, "elementStride": 0}
31+
},
32+
{
33+
"name": "roughness",
34+
"type": {
35+
"kind": "scalar",
36+
"scalarType": "float32"
37+
},
38+
"binding": {"kind": "uniform", "offset": 20, "size": 4, "elementStride": 0}
39+
},
40+
{
41+
"name": "ao",
42+
"type": {
43+
"kind": "scalar",
44+
"scalarType": "float32"
45+
},
46+
"binding": {"kind": "uniform", "offset": 24, "size": 4, "elementStride": 0}
5747
}
5848
]
5949
},
@@ -63,53 +53,43 @@
6353
"elementVarLayout": {
6454
"type": {
6555
"kind": "struct",
66-
"name": "MaterialBlock",
56+
"name": "PbrMaterial",
6757
"fields": [
6858
{
69-
"name": "material",
59+
"name": "baseColor",
7060
"type": {
71-
"kind": "struct",
72-
"name": "PbrMaterial",
73-
"fields": [
74-
{
75-
"name": "baseColor",
76-
"type": {
77-
"kind": "vector",
78-
"elementCount": 4,
79-
"elementType": {
80-
"kind": "scalar",
81-
"scalarType": "float32"
82-
}
83-
},
84-
"binding": {"kind": "uniform", "offset": 0, "size": 16, "elementStride": 4}
85-
},
86-
{
87-
"name": "metalness",
88-
"type": {
89-
"kind": "scalar",
90-
"scalarType": "float32"
91-
},
92-
"binding": {"kind": "uniform", "offset": 16, "size": 4, "elementStride": 0}
93-
},
94-
{
95-
"name": "roughness",
96-
"type": {
97-
"kind": "scalar",
98-
"scalarType": "float32"
99-
},
100-
"binding": {"kind": "uniform", "offset": 20, "size": 4, "elementStride": 0}
101-
},
102-
{
103-
"name": "ao",
104-
"type": {
105-
"kind": "scalar",
106-
"scalarType": "float32"
107-
},
108-
"binding": {"kind": "uniform", "offset": 24, "size": 4, "elementStride": 0}
109-
}
110-
]
61+
"kind": "vector",
62+
"elementCount": 4,
63+
"elementType": {
64+
"kind": "scalar",
65+
"scalarType": "float32"
66+
}
67+
},
68+
"binding": {"kind": "uniform", "offset": 0, "size": 16, "elementStride": 4}
69+
},
70+
{
71+
"name": "metalness",
72+
"type": {
73+
"kind": "scalar",
74+
"scalarType": "float32"
11175
},
112-
"binding": {"kind": "uniform", "offset": 0, "size": 32, "elementStride": 0}
76+
"binding": {"kind": "uniform", "offset": 16, "size": 4, "elementStride": 0}
77+
},
78+
{
79+
"name": "roughness",
80+
"type": {
81+
"kind": "scalar",
82+
"scalarType": "float32"
83+
},
84+
"binding": {"kind": "uniform", "offset": 20, "size": 4, "elementStride": 0}
85+
},
86+
{
87+
"name": "ao",
88+
"type": {
89+
"kind": "scalar",
90+
"scalarType": "float32"
91+
},
92+
"binding": {"kind": "uniform", "offset": 24, "size": 4, "elementStride": 0}
11393
}
11494
]
11595
},
@@ -180,6 +160,14 @@
180160
"scalarType": "int32"
181161
},
182162
"binding": {"kind": "uniform", "offset": 192, "size": 4, "elementStride": 0}
163+
},
164+
{
165+
"name": "useSsao",
166+
"type": {
167+
"kind": "scalar",
168+
"scalarType": "uint32"
169+
},
170+
"binding": {"kind": "uniform", "offset": 196, "size": 4, "elementStride": 0}
183171
}
184172
]
185173
},
@@ -245,57 +233,24 @@
245233
"scalarType": "int32"
246234
},
247235
"binding": {"kind": "uniform", "offset": 192, "size": 4, "elementStride": 0}
248-
}
249-
]
250-
},
251-
"binding": {"kind": "uniform", "offset": 0, "size": 208, "elementStride": 0}
252-
}
253-
}
254-
},
255-
{
256-
"name": "params",
257-
"binding": {"kind": "descriptorTableSlot", "space": 3, "index": 2},
258-
"type": {
259-
"kind": "constantBuffer",
260-
"elementType": {
261-
"kind": "struct",
262-
"name": "EffectParams",
263-
"fields": [
264-
{
265-
"name": "useSsao",
266-
"type": {
267-
"kind": "scalar",
268-
"scalarType": "uint32"
269236
},
270-
"binding": {"kind": "uniform", "offset": 0, "size": 4, "elementStride": 0}
271-
}
272-
]
273-
},
274-
"containerVarLayout": {
275-
"binding": {"kind": "descriptorTableSlot", "index": 0}
276-
},
277-
"elementVarLayout": {
278-
"type": {
279-
"kind": "struct",
280-
"name": "EffectParams",
281-
"fields": [
282237
{
283238
"name": "useSsao",
284239
"type": {
285240
"kind": "scalar",
286241
"scalarType": "uint32"
287242
},
288-
"binding": {"kind": "uniform", "offset": 0, "size": 4, "elementStride": 0}
243+
"binding": {"kind": "uniform", "offset": 196, "size": 4, "elementStride": 0}
289244
}
290245
]
291246
},
292-
"binding": {"kind": "uniform", "offset": 0, "size": 16, "elementStride": 0}
247+
"binding": {"kind": "uniform", "offset": 0, "size": 208, "elementStride": 0}
293248
}
294249
}
295250
},
296251
{
297252
"name": "shadowAtlas",
298-
"binding": {"kind": "descriptorTableSlot", "space": 3, "index": 3},
253+
"binding": {"kind": "descriptorTableSlot", "space": 3, "index": 2},
299254
"type": {
300255
"kind": "constantBuffer",
301256
"elementType": {
@@ -511,13 +466,9 @@
511466
"name": "light",
512467
"binding": {"kind": "descriptorTableSlot", "space": 3, "index": 1, "used": 1}
513468
},
514-
{
515-
"name": "params",
516-
"binding": {"kind": "descriptorTableSlot", "space": 3, "index": 2, "used": 1}
517-
},
518469
{
519470
"name": "shadowAtlas",
520-
"binding": {"kind": "descriptorTableSlot", "space": 3, "index": 3, "used": 1}
471+
"binding": {"kind": "descriptorTableSlot", "space": 3, "index": 2, "used": 1}
521472
},
522473
{
523474
"name": "shadowMap",

0 commit comments

Comments
 (0)