@@ -160,22 +160,48 @@ class Load3d {
160160 this . viewHelperManager . update ( delta )
161161 this . controlsManager . update ( )
162162
163+ this . renderMainScene ( )
164+
165+ if ( this . previewManager . showPreview ) {
166+ this . renderPreviewScene ( )
167+ }
168+
169+ this . resetViewport ( )
170+
171+ if ( this . viewHelperManager . viewHelper . render ) {
172+ this . viewHelperManager . viewHelper . render ( this . renderer )
173+ }
174+
175+ this . INITIAL_RENDER_DONE = true
176+ }
177+
178+ renderMainScene ( ) : void {
179+ const width = this . renderer . domElement . clientWidth
180+ const height = this . renderer . domElement . clientHeight
181+
182+ this . renderer . setViewport ( 0 , 0 , width , height )
183+ this . renderer . setScissor ( 0 , 0 , width , height )
184+ this . renderer . setScissorTest ( true )
185+
163186 this . renderer . clear ( )
164187 this . sceneManager . renderBackground ( )
165188 this . renderer . render (
166189 this . sceneManager . scene ,
167190 this . cameraManager . activeCamera
168191 )
192+ }
169193
170- if ( this . viewHelperManager . viewHelper . render ) {
171- this . viewHelperManager . viewHelper . render ( this . renderer )
172- }
194+ renderPreviewScene ( ) : void {
195+ this . previewManager . renderPreview ( )
196+ }
173197
174- if ( this . previewManager . showPreview ) {
175- this . previewManager . updatePreviewRender ( )
176- }
198+ resetViewport ( ) : void {
199+ const width = this . renderer . domElement . clientWidth
200+ const height = this . renderer . domElement . clientHeight
177201
178- this . INITIAL_RENDER_DONE = true
202+ this . renderer . setViewport ( 0 , 0 , width , height )
203+ this . renderer . setScissor ( 0 , 0 , width , height )
204+ this . renderer . setScissorTest ( false )
179205 }
180206
181207 private getActiveCamera ( ) : THREE . Camera {
@@ -198,20 +224,17 @@ class Load3d {
198224 return
199225 }
200226
201- if ( this . previewManager . showPreview ) {
202- this . previewManager . updatePreviewRender ( )
203- }
204-
205227 const delta = this . clock . getDelta ( )
206228 this . viewHelperManager . update ( delta )
207229 this . controlsManager . update ( )
208230
209- this . renderer . clear ( )
210- this . sceneManager . renderBackground ( )
211- this . renderer . render (
212- this . sceneManager . scene ,
213- this . cameraManager . activeCamera
214- )
231+ this . renderMainScene ( )
232+
233+ if ( this . previewManager . showPreview ) {
234+ this . renderPreviewScene ( )
235+ }
236+
237+ this . resetViewport ( )
215238
216239 if ( this . viewHelperManager . viewHelper . render ) {
217240 this . viewHelperManager . viewHelper . render ( this . renderer )
@@ -304,22 +327,17 @@ class Load3d {
304327 async setBackgroundImage ( uploadPath : string ) : Promise < void > {
305328 await this . sceneManager . setBackgroundImage ( uploadPath )
306329
307- if ( this . previewManager . previewRenderer ) {
308- this . previewManager . updateBackgroundTexture (
309- this . sceneManager . backgroundTexture
310- )
311- }
330+ this . previewManager . updateBackgroundTexture (
331+ this . sceneManager . backgroundTexture
332+ )
312333
313334 this . forceRender ( )
314335 }
315336
316337 removeBackgroundImage ( ) : void {
317338 this . sceneManager . removeBackgroundImage ( )
318339
319- if (
320- this . previewManager . previewRenderer &&
321- this . previewManager . previewCamera
322- ) {
340+ if ( this . previewManager . previewCamera ) {
323341 this . previewManager . updateBackgroundTexture ( null )
324342 }
325343
0 commit comments