@littlecarlito/blorktools 0.50.3 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +69 -0
- package/package.json +13 -7
- package/src/asset_debugger/axis-indicator/axis-indicator.css +6 -0
- package/src/asset_debugger/axis-indicator/axis-indicator.html +20 -0
- package/src/asset_debugger/axis-indicator/axis-indicator.js +822 -0
- package/src/asset_debugger/debugger-scene/debugger-scene.css +142 -0
- package/src/asset_debugger/debugger-scene/debugger-scene.html +80 -0
- package/src/asset_debugger/debugger-scene/debugger-scene.js +791 -0
- package/src/asset_debugger/header/header.css +73 -0
- package/src/asset_debugger/header/header.html +24 -0
- package/src/asset_debugger/header/header.js +224 -0
- package/src/asset_debugger/index.html +76 -0
- package/src/asset_debugger/landing-page/landing-page.css +396 -0
- package/src/asset_debugger/landing-page/landing-page.html +81 -0
- package/src/asset_debugger/landing-page/landing-page.js +611 -0
- package/src/asset_debugger/loading-splash/loading-splash.css +195 -0
- package/src/asset_debugger/loading-splash/loading-splash.html +22 -0
- package/src/asset_debugger/loading-splash/loading-splash.js +59 -0
- package/src/asset_debugger/loading-splash/preview-loading-splash.js +66 -0
- package/src/asset_debugger/main.css +14 -0
- package/src/asset_debugger/modals/examples-modal/examples-modal.css +41 -0
- package/src/asset_debugger/modals/examples-modal/examples-modal.html +18 -0
- package/src/asset_debugger/modals/examples-modal/examples-modal.js +111 -0
- package/src/asset_debugger/modals/examples-modal/examples.js +125 -0
- package/src/asset_debugger/modals/html-editor-modal/html-editor-modal.css +452 -0
- package/src/asset_debugger/modals/html-editor-modal/html-editor-modal.html +87 -0
- package/src/asset_debugger/modals/html-editor-modal/html-editor-modal.js +675 -0
- package/src/asset_debugger/modals/mesh-info-modal/mesh-info-modal.css +219 -0
- package/src/asset_debugger/modals/mesh-info-modal/mesh-info-modal.html +20 -0
- package/src/asset_debugger/modals/mesh-info-modal/mesh-info-modal.js +548 -0
- package/src/asset_debugger/modals/settings-modal/settings-modal.css +103 -0
- package/src/asset_debugger/modals/settings-modal/settings-modal.html +158 -0
- package/src/asset_debugger/modals/settings-modal/settings-modal.js +475 -0
- package/src/asset_debugger/panels/asset-panel/asset-panel.css +263 -0
- package/src/asset_debugger/panels/asset-panel/asset-panel.html +123 -0
- package/src/asset_debugger/panels/asset-panel/asset-panel.js +136 -0
- package/src/asset_debugger/panels/asset-panel/atlas-heading/atlas-heading.css +94 -0
- package/src/asset_debugger/panels/asset-panel/atlas-heading/atlas-heading.js +312 -0
- package/src/asset_debugger/panels/asset-panel/mesh-heading/mesh-heading.css +129 -0
- package/src/asset_debugger/panels/asset-panel/mesh-heading/mesh-heading.js +486 -0
- package/src/asset_debugger/panels/asset-panel/rig-heading/rig-heading.css +545 -0
- package/src/asset_debugger/panels/asset-panel/rig-heading/rig-heading.js +538 -0
- package/src/asset_debugger/panels/asset-panel/uv-heading/uv-heading.css +70 -0
- package/src/asset_debugger/panels/asset-panel/uv-heading/uv-heading.js +586 -0
- package/src/asset_debugger/panels/world-panel/world-panel.css +364 -0
- package/src/asset_debugger/panels/world-panel/world-panel.html +173 -0
- package/src/asset_debugger/panels/world-panel/world-panel.js +1891 -0
- package/src/asset_debugger/router.js +190 -0
- package/src/asset_debugger/util/animation/playback/animation-playback-controller.js +150 -0
- package/src/asset_debugger/util/animation/playback/animation-preview-controller.js +316 -0
- package/src/asset_debugger/util/animation/playback/css3d-bounce-controller.js +400 -0
- package/src/asset_debugger/util/animation/playback/css3d-reversal-controller.js +821 -0
- package/src/asset_debugger/util/animation/render/css3d-prerender-controller.js +696 -0
- package/src/asset_debugger/util/animation/render/debug-texture-factory.js +0 -0
- package/src/asset_debugger/util/animation/render/iframe2texture-render-controller.js +199 -0
- package/src/asset_debugger/util/animation/render/image2texture-prerender-controller.js +461 -0
- package/src/asset_debugger/util/animation/render/pbr-material-factory.js +82 -0
- package/src/asset_debugger/util/common.css +280 -0
- package/src/asset_debugger/util/data/animation-classifier.js +323 -0
- package/src/asset_debugger/util/data/duplicate-handler.js +20 -0
- package/src/asset_debugger/util/data/glb-buffer-manager.js +407 -0
- package/src/asset_debugger/util/data/glb-classifier.js +290 -0
- package/src/asset_debugger/util/data/html-formatter.js +76 -0
- package/src/asset_debugger/util/data/html-linter.js +276 -0
- package/src/asset_debugger/util/data/localstorage-manager.js +265 -0
- package/src/asset_debugger/util/data/mesh-html-manager.js +295 -0
- package/src/asset_debugger/util/data/string-serder.js +303 -0
- package/src/asset_debugger/util/data/texture-classifier.js +663 -0
- package/src/asset_debugger/util/data/upload/background-file-handler.js +292 -0
- package/src/asset_debugger/util/data/upload/dropzone-preview-controller.js +396 -0
- package/src/asset_debugger/util/data/upload/file-upload-manager.js +495 -0
- package/src/asset_debugger/util/data/upload/glb-file-handler.js +36 -0
- package/src/asset_debugger/util/data/upload/glb-preview-controller.js +317 -0
- package/src/asset_debugger/util/data/upload/lighting-file-handler.js +194 -0
- package/src/asset_debugger/util/data/upload/model-file-manager.js +104 -0
- package/src/asset_debugger/util/data/upload/texture-file-handler.js +166 -0
- package/src/asset_debugger/util/data/upload/zip-handler.js +686 -0
- package/src/asset_debugger/util/loaders/html2canvas-loader.js +107 -0
- package/src/asset_debugger/util/rig/bone-kinematics.js +403 -0
- package/src/asset_debugger/util/rig/rig-constraint-manager.js +618 -0
- package/src/asset_debugger/util/rig/rig-controller.js +612 -0
- package/src/asset_debugger/util/rig/rig-factory.js +628 -0
- package/src/asset_debugger/util/rig/rig-handle-factory.js +46 -0
- package/src/asset_debugger/util/rig/rig-label-factory.js +441 -0
- package/src/asset_debugger/util/rig/rig-mouse-handler.js +377 -0
- package/src/asset_debugger/util/rig/rig-state-manager.js +175 -0
- package/src/asset_debugger/util/rig/rig-tooltip-manager.js +267 -0
- package/src/asset_debugger/util/rig/rig-ui-factory.js +700 -0
- package/src/asset_debugger/util/scene/background-manager.js +284 -0
- package/src/asset_debugger/util/scene/camera-controller.js +243 -0
- package/src/asset_debugger/util/scene/css3d-debug-controller.js +406 -0
- package/src/asset_debugger/util/scene/css3d-frame-factory.js +113 -0
- package/src/asset_debugger/util/scene/css3d-scene-manager.js +529 -0
- package/src/asset_debugger/util/scene/glb-controller.js +208 -0
- package/src/asset_debugger/util/scene/lighting-manager.js +690 -0
- package/src/asset_debugger/util/scene/threejs-model-manager.js +437 -0
- package/src/asset_debugger/util/scene/threejs-preview-manager.js +207 -0
- package/src/asset_debugger/util/scene/threejs-preview-setup.js +478 -0
- package/src/asset_debugger/util/scene/threejs-scene-controller.js +286 -0
- package/src/asset_debugger/util/scene/ui-manager.js +107 -0
- package/src/asset_debugger/util/state/animation-state.js +128 -0
- package/src/asset_debugger/util/state/css3d-state.js +83 -0
- package/src/asset_debugger/util/state/glb-preview-state.js +31 -0
- package/src/asset_debugger/util/state/log-util.js +197 -0
- package/src/asset_debugger/util/state/scene-state.js +452 -0
- package/src/asset_debugger/util/state/threejs-state.js +54 -0
- package/src/asset_debugger/util/workers/lighting-worker.js +61 -0
- package/src/asset_debugger/util/workers/model-worker.js +109 -0
- package/src/asset_debugger/util/workers/texture-worker.js +54 -0
- package/src/asset_debugger/util/workers/worker-manager.js +212 -0
- package/src/asset_debugger/widgets/mesh-info-widget.js +280 -0
- package/src/index.html +261 -0
- package/src/index.js +8 -0
- package/vite.config.js +66 -0
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
/* Update lighting preview container sizing */
|
|
2
|
+
#lighting-dropzone {
|
|
3
|
+
width: 275px;
|
|
4
|
+
max-width: 275px;
|
|
5
|
+
height: 200px;
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
padding: 15px;
|
|
9
|
+
margin: 0 auto;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
#lighting-dropzone.has-file {
|
|
13
|
+
padding: 15px;
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-direction: column;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
#lighting-dropzone.has-file h3 {
|
|
19
|
+
margin-top: 0;
|
|
20
|
+
margin-bottom: 10px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
#upload-section {
|
|
24
|
+
position: fixed;
|
|
25
|
+
top: 70px; /* Below header */
|
|
26
|
+
left: 50%;
|
|
27
|
+
transform: translateX(-50%);
|
|
28
|
+
width: 90%;
|
|
29
|
+
max-width: 1200px;
|
|
30
|
+
max-height: calc(100vh - 100px);
|
|
31
|
+
overflow-y: auto;
|
|
32
|
+
z-index: 900;
|
|
33
|
+
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#upload-section > h2 {
|
|
37
|
+
margin-top: 8px;
|
|
38
|
+
margin-bottom: 5px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Section heading style for Asset Files and World Files */
|
|
42
|
+
.section-heading {
|
|
43
|
+
font-size: 22px;
|
|
44
|
+
color: var(--primary-color);
|
|
45
|
+
text-shadow: 0 0 5px rgba(76, 175, 80, 0.5);
|
|
46
|
+
margin-top: 15px;
|
|
47
|
+
margin-bottom: 15px;
|
|
48
|
+
padding-bottom: 5px;
|
|
49
|
+
font-weight: normal;
|
|
50
|
+
letter-spacing: 1px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Card panel */
|
|
54
|
+
.tool-panel {
|
|
55
|
+
padding: 20px;
|
|
56
|
+
background-color: rgba(30, 30, 30, 0.9);
|
|
57
|
+
border: 3px solid var(--fallout-yellow);
|
|
58
|
+
border-radius: 4px;
|
|
59
|
+
max-height: unset;
|
|
60
|
+
overflow-y: visible;
|
|
61
|
+
backdrop-filter: blur(10px);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* Main container dropzone styles */
|
|
65
|
+
.dropzone-container-main {
|
|
66
|
+
border: 3px solid var(--tool-color);
|
|
67
|
+
transition: border-color 0.3s ease, box-shadow 0.3s ease;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.dropzone-container-active {
|
|
71
|
+
border-color: var(--primary-color) !important;
|
|
72
|
+
box-shadow: 0 0 10px rgba(76, 175, 80, 0.7);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Adjust dropzone container to distribute items evenly */
|
|
76
|
+
.dropzone-container {
|
|
77
|
+
display: flex;
|
|
78
|
+
flex-wrap: wrap;
|
|
79
|
+
gap: 15px;
|
|
80
|
+
width: 100%;
|
|
81
|
+
margin-bottom: 15px;
|
|
82
|
+
justify-content: flex-start;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* New wrapper for centering dropzone containers */
|
|
86
|
+
.dropzone-row {
|
|
87
|
+
width: 100%;
|
|
88
|
+
display: flex;
|
|
89
|
+
justify-content: center;
|
|
90
|
+
margin-bottom: 15px;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Inside dropzone-row, adjust container to center its content */
|
|
94
|
+
.dropzone-row .dropzone-container {
|
|
95
|
+
justify-content: center;
|
|
96
|
+
margin-bottom: 0;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Dropzone styling as requested */
|
|
100
|
+
.dropzone {
|
|
101
|
+
position: relative;
|
|
102
|
+
border: 2px dashed #4a4a4a; /* More visible gray dashed border */
|
|
103
|
+
border-radius: 4px;
|
|
104
|
+
padding: 15px; /* Consistent padding regardless of state */
|
|
105
|
+
height: 200px; /* Fixed height */
|
|
106
|
+
background-color: rgba(0,0,0,0.1);
|
|
107
|
+
text-align: center;
|
|
108
|
+
transition: all 0.3s ease;
|
|
109
|
+
display: flex;
|
|
110
|
+
flex-direction: column;
|
|
111
|
+
justify-content: flex-start; /* Changed from space-between to flex-start */
|
|
112
|
+
align-items: center;
|
|
113
|
+
cursor: pointer;
|
|
114
|
+
overflow: hidden;
|
|
115
|
+
max-width: 100%; /* Ensure no clipping */
|
|
116
|
+
min-width: unset; /* Remove fixed width */
|
|
117
|
+
width: 275px; /* Fixed width for all dropzones */
|
|
118
|
+
flex: 0 0 auto; /* Prevent flex growing/shrinking */
|
|
119
|
+
box-sizing: border-box; /* Include padding in the height calculation */
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.dropzone.active {
|
|
123
|
+
border: 2px dashed var(--fallout-yellow); /* Use fallout yellow for hover state */
|
|
124
|
+
box-shadow: 0 0 8px rgba(248, 183, 62, 0.5); /* Subtle glow with fallout yellow */
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.dropzone.has-file {
|
|
128
|
+
border: 2px solid var(--primary-color); /* Green when file dropped */
|
|
129
|
+
box-shadow: var(--success-glow);
|
|
130
|
+
cursor: default; /* Change cursor to default for filled dropzones */
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.dropzone:not(.has-file):hover {
|
|
134
|
+
background-color: rgba(50, 50, 50, 0.4);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* Preview styling to indicate it's interactive */
|
|
138
|
+
.dropzone.has-file .asset-preview,
|
|
139
|
+
.dropzone.has-file .texture-preview-container,
|
|
140
|
+
.dropzone.has-file .hdr-preview-container,
|
|
141
|
+
.dropzone.has-file .model-preview-container {
|
|
142
|
+
cursor: grab; /* Show grab cursor to indicate the preview can be interacted with */
|
|
143
|
+
border: 1px solid var(--panel-border);
|
|
144
|
+
background-color: rgba(0,0,0,0.2);
|
|
145
|
+
border-radius: 4px;
|
|
146
|
+
transition: all 0.2s ease;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* When actively dragging/interacting */
|
|
150
|
+
.dropzone.has-file .asset-preview:active,
|
|
151
|
+
.dropzone.has-file .texture-preview-container:active,
|
|
152
|
+
.dropzone.has-file .hdr-preview-container:active,
|
|
153
|
+
.dropzone.has-file .model-preview-container:active {
|
|
154
|
+
cursor: grabbing; /* Change to grabbing cursor when being moved */
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* Hover effect for previews */
|
|
158
|
+
.dropzone.has-file .asset-preview:hover,
|
|
159
|
+
.dropzone.has-file .texture-preview-container:hover,
|
|
160
|
+
.dropzone.has-file .hdr-preview-container:hover,
|
|
161
|
+
.dropzone.has-file .model-preview-container:hover {
|
|
162
|
+
border-color: var(--button-color);
|
|
163
|
+
box-shadow: 0 0 5px rgba(30, 136, 229, 0.5);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.dropzone h3 {
|
|
167
|
+
font-size: 16px;
|
|
168
|
+
margin-bottom: 10px;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.dropzone p {
|
|
172
|
+
margin: 3px 0;
|
|
173
|
+
font-size: 12px;
|
|
174
|
+
color: var(--text-color);
|
|
175
|
+
max-width: 100%;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.file-info {
|
|
179
|
+
font-size: 12px;
|
|
180
|
+
margin-top: 10px;
|
|
181
|
+
color: var(--label-text);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/* Updated asset preview styles */
|
|
185
|
+
.asset-preview {
|
|
186
|
+
width: 100%;
|
|
187
|
+
max-width: 140px;
|
|
188
|
+
aspect-ratio: 1/1;
|
|
189
|
+
height: auto;
|
|
190
|
+
flex-direction: column;
|
|
191
|
+
justify-content: center;
|
|
192
|
+
align-items: center;
|
|
193
|
+
overflow: hidden;
|
|
194
|
+
border: 1px solid var(--panel-border);
|
|
195
|
+
background-color: rgba(0,0,0,0.2);
|
|
196
|
+
position: relative; /* Ensure proper positioning of children */
|
|
197
|
+
margin-top: auto; /* Push preview to bottom when visible */
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* Use a hidden class for the asset preview instead of display: none */
|
|
201
|
+
.dropzone:not(.has-file) .asset-preview {
|
|
202
|
+
visibility: hidden;
|
|
203
|
+
height: 0;
|
|
204
|
+
margin: 0;
|
|
205
|
+
border: none;
|
|
206
|
+
position: absolute;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.dropzone.has-file .asset-preview {
|
|
210
|
+
visibility: visible;
|
|
211
|
+
height: auto;
|
|
212
|
+
margin-top: 10px;
|
|
213
|
+
display: flex;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/* Create placeholder space for the asset preview to maintain consistent height */
|
|
217
|
+
.asset-preview-placeholder {
|
|
218
|
+
margin-top: auto; /* Push placeholder to the bottom */
|
|
219
|
+
height: 140px;
|
|
220
|
+
width: 100%;
|
|
221
|
+
max-width: 140px;
|
|
222
|
+
visibility: hidden;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/* Hide the placeholder when we have a file (since the real preview will be shown) */
|
|
226
|
+
.dropzone.has-file .asset-preview-placeholder {
|
|
227
|
+
display: none;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.asset-preview img {
|
|
231
|
+
max-width: 100%;
|
|
232
|
+
max-height: 100%;
|
|
233
|
+
object-fit: contain; /* Preserve aspect ratio while fitting in square */
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/* Group paragraphs together with consistent spacing */
|
|
237
|
+
.dropzone p + p {
|
|
238
|
+
margin-top: 2px; /* Tighter spacing between consecutive paragraphs */
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/* Blue button */
|
|
242
|
+
.start-button {
|
|
243
|
+
display: block;
|
|
244
|
+
width: 100%;
|
|
245
|
+
margin-top: 8px;
|
|
246
|
+
padding: 10px 20px;
|
|
247
|
+
font-family: monospace;
|
|
248
|
+
font-size: 14px;
|
|
249
|
+
background-color: var(--button-color);
|
|
250
|
+
color: white;
|
|
251
|
+
border: none;
|
|
252
|
+
border-radius: 4px;
|
|
253
|
+
font-weight: bold;
|
|
254
|
+
cursor: pointer;
|
|
255
|
+
transition: all 0.3s ease;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.start-button:hover, .button-base:hover {
|
|
259
|
+
background-color: #0d74c7;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.start-button:disabled {
|
|
263
|
+
background-color: #555;
|
|
264
|
+
color: #888;
|
|
265
|
+
cursor: not-allowed;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/* File Handler Styles */
|
|
269
|
+
.texture-preview-container {
|
|
270
|
+
position: relative;
|
|
271
|
+
width: 100%;
|
|
272
|
+
height: 100%;
|
|
273
|
+
display: flex;
|
|
274
|
+
justify-content: center;
|
|
275
|
+
align-items: center;
|
|
276
|
+
overflow: hidden;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/* Update the HDR preview container for better fit */
|
|
280
|
+
.hdr-preview-container {
|
|
281
|
+
position: relative;
|
|
282
|
+
width: 100%;
|
|
283
|
+
height: 100%;
|
|
284
|
+
display: flex;
|
|
285
|
+
justify-content: center;
|
|
286
|
+
align-items: center;
|
|
287
|
+
overflow: hidden;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.hdr-preview-canvas {
|
|
291
|
+
max-width: 100%;
|
|
292
|
+
max-height: 100%;
|
|
293
|
+
object-fit: contain; /* Ensure the canvas fits without distortion */
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.texture-preview-img {
|
|
297
|
+
max-width: 100%;
|
|
298
|
+
max-height: 100%;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.texture-preview-img.hidden {
|
|
302
|
+
display: none;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.texture-preview-img.visible {
|
|
306
|
+
display: block;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.hdr-preview-canvas.hidden {
|
|
310
|
+
display: none;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.hdr-preview-canvas.visible {
|
|
314
|
+
display: block;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.texture-hint.optional {
|
|
318
|
+
color: #88cc88;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.clear-preview-button {
|
|
322
|
+
position: absolute;
|
|
323
|
+
top: 10px;
|
|
324
|
+
right: 10px;
|
|
325
|
+
width: 24px;
|
|
326
|
+
height: 24px;
|
|
327
|
+
background-color: rgba(0, 0, 0, 0.6);
|
|
328
|
+
color: #ffffff;
|
|
329
|
+
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
330
|
+
border-radius: 50%;
|
|
331
|
+
display: flex;
|
|
332
|
+
align-items: center;
|
|
333
|
+
justify-content: center;
|
|
334
|
+
font-size: 16px;
|
|
335
|
+
cursor: pointer;
|
|
336
|
+
z-index: 10;
|
|
337
|
+
transition: all 0.2s ease;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
.clear-preview-button:hover {
|
|
341
|
+
background-color: rgba(255, 0, 0, 0.6);
|
|
342
|
+
transform: scale(1.1);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/* Add relative positioning to dropzone to position the clear button properly */
|
|
346
|
+
.dropzone {
|
|
347
|
+
position: relative;
|
|
348
|
+
min-width: unset; /* Remove the fixed minimum width */
|
|
349
|
+
max-width: 275px;
|
|
350
|
+
flex: 1 1 0;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/* More compact dropzone headers */
|
|
354
|
+
.dropzone h3 {
|
|
355
|
+
font-size: 16px;
|
|
356
|
+
margin-top: 0;
|
|
357
|
+
margin-bottom: 5px;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/* More compact paragraphs in dropzones */
|
|
361
|
+
.dropzone p {
|
|
362
|
+
margin: 3px 0;
|
|
363
|
+
font-size: 12px;
|
|
364
|
+
color: var(--text-color);
|
|
365
|
+
max-width: 100%;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/* Add this to hide file info in lighting dropzone when a file is loaded */
|
|
369
|
+
.dropzone.has-file .file-info {
|
|
370
|
+
display: none;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/* Style the canvas to ensure it displays properly */
|
|
374
|
+
.hdr-preview-canvas {
|
|
375
|
+
width: 100%;
|
|
376
|
+
height: 100%;
|
|
377
|
+
object-fit: contain;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.square-preview {
|
|
381
|
+
display: block;
|
|
382
|
+
width: 100% !important;
|
|
383
|
+
height: 100% !important;
|
|
384
|
+
object-fit: contain;
|
|
385
|
+
max-width: 100%;
|
|
386
|
+
max-height: 100%;
|
|
387
|
+
aspect-ratio: 1/1;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
.preview {
|
|
391
|
+
margin-top: 10px;
|
|
392
|
+
width: 100%;
|
|
393
|
+
max-width: 140px;
|
|
394
|
+
aspect-ratio: 1/1;
|
|
395
|
+
height: auto;
|
|
396
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" class="dark-mode">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Upload Section - Asset Debugger</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<!-- Upload section overlay -->
|
|
10
|
+
<div id="upload-section" class="tool-panel dropzone-container-main">
|
|
11
|
+
<h2 class="section-heading">Asset Files</h2>
|
|
12
|
+
<div class="dropzone-row">
|
|
13
|
+
<div class="dropzone-container">
|
|
14
|
+
<div class="dropzone" id="basecolor-dropzone">
|
|
15
|
+
<h3>Base Color Atlas</h3>
|
|
16
|
+
<p>Drag & drop your base color texture atlas here</p>
|
|
17
|
+
<p class="file-info" id="basecolor-info"></p>
|
|
18
|
+
<div class="asset-preview" id="basecolor-preview"></div>
|
|
19
|
+
<div class="asset-preview-placeholder"></div>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<div class="dropzone" id="orm-dropzone">
|
|
23
|
+
<h3>ORM Atlas</h3>
|
|
24
|
+
<p>Drag & drop your ORM (Occlusion, Roughness, Metalness) texture atlas here</p>
|
|
25
|
+
<p class="file-info" id="orm-info"></p>
|
|
26
|
+
<div class="asset-preview" id="orm-preview"></div>
|
|
27
|
+
<div class="asset-preview-placeholder"></div>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<div class="dropzone" id="normal-dropzone">
|
|
31
|
+
<h3>Normal Atlas</h3>
|
|
32
|
+
<p>Drag & drop your normal map texture atlas here</p>
|
|
33
|
+
<p class="file-info" id="normal-info"></p>
|
|
34
|
+
<div class="asset-preview" id="normal-preview"></div>
|
|
35
|
+
<div class="asset-preview-placeholder"></div>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<div class="dropzone" id="model-dropzone">
|
|
39
|
+
<h3>3D Model</h3>
|
|
40
|
+
<p>Drag & drop a GLB model file here</p>
|
|
41
|
+
<p>If not provided, a cube will be used</p>
|
|
42
|
+
<p class="file-info" id="model-info"></p>
|
|
43
|
+
<div class="asset-preview" id="model-preview"></div>
|
|
44
|
+
<div class="asset-preview-placeholder"></div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<h2 class="section-heading">World Files</h2>
|
|
50
|
+
<div class="dropzone-row">
|
|
51
|
+
<div class="dropzone-container" style="display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px;">
|
|
52
|
+
<div style="grid-column: 1/2; visibility: hidden;"></div>
|
|
53
|
+
|
|
54
|
+
<div class="dropzone" id="lighting-dropzone" style="grid-column: 2/3;">
|
|
55
|
+
<h3>Lighting File</h3>
|
|
56
|
+
<p>Drag & drop your HDR or EXR lighting file here</p>
|
|
57
|
+
<p class="file-info" id="lighting-info"></p>
|
|
58
|
+
<div class="asset-preview" id="lighting-preview"></div>
|
|
59
|
+
<div class="asset-preview-placeholder"></div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div class="dropzone" id="background-dropzone" style="grid-column: 3/4;">
|
|
63
|
+
<h3>Background Image</h3>
|
|
64
|
+
<p>Drag & drop your HDR, EXR, JPEG, PNG, WebP, or TIFF background image here</p>
|
|
65
|
+
<p class="file-info" id="background-info"></p>
|
|
66
|
+
<div class="asset-preview" id="background-preview"></div>
|
|
67
|
+
<div class="asset-preview-placeholder"></div>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<div style="grid-column: 4/5; visibility: hidden;"></div>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<p id="zip-info" class="file-info" style="text-align: center; margin-top: 15px; display: none;"></p>
|
|
75
|
+
|
|
76
|
+
<button id="start-debug" class="start-button">Start Debugging</button>
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<div id="examples-modal-container"></div>
|
|
80
|
+
</body>
|
|
81
|
+
</html>
|