diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl | 2 | ||||
| -rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl | 4 | ||||
| -rw-r--r-- | indra/newview/llviewerdisplay.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 134 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 34 | 
5 files changed, 23 insertions, 157 deletions
| diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl index 651959413c..45884d5732 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl @@ -137,7 +137,7 @@ void main()  		}  		//float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0); -		vec4 amb_plcol = texture2DLod(projectionMap, proj_tc.xy, proj_ambient_lod); +		vec4 amb_plcol = texture2DLod(projectionMap, proj_tc.xy, proj_lod);  		amb_da += (da*da*0.5+0.5)*proj_ambiance; diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl index a0026edcd2..4333cc64a7 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl @@ -224,11 +224,11 @@ void main()  	//spotlight shadow 1  	vec4 lpos = shadow_matrix[4]*spos; -	gl_FragColor[2] = pcfShadow(shadowMap4, lpos, 0.1).x;  +	gl_FragColor[2] = pcfShadow(shadowMap4, lpos, 0.8).x;   	//spotlight shadow 2  	lpos = shadow_matrix[5]*spos; -	gl_FragColor[3] = pcfShadow(shadowMap5, lpos, 0.1).x;  +	gl_FragColor[3] = pcfShadow(shadowMap5, lpos, 0.8).x;   	//gl_FragColor.rgb = pos.xyz;  	//gl_FragColor.b = shadow; diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 5a2b901bd7..f09ae1f8f4 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -869,12 +869,6 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)  			}  		} -		/// We copy the frame buffer straight into a texture here, -		/// and then display it again with compositor effects. -		/// Using render to texture would be faster/better, but I don't have a  -		/// grasp of their full display stack just yet. -		// gPostProcess->apply(gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw()); -		  		if (LLPipeline::sRenderDeferred && !LLPipeline::sUnderWaterRender)  		{  			gPipeline.renderDeferredLighting(); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 6d2bbb27ee..11f9261297 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -3892,140 +3892,6 @@ void LLViewerWindow::playSnapshotAnimAndSound()  BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL do_rebuild, ESnapshotType type)  {  	return rawSnapshot(raw, preview_width, preview_height, FALSE, FALSE, show_ui, do_rebuild, type); -	 -	// *TODO below code was broken in deferred pipeline -	/* -	if ((!raw) || preview_width < 10 || preview_height < 10) -	{ -		return FALSE; -	} - -	if(gResizeScreenTexture) //the window is resizing -	{ -		return FALSE ; -	} - -	setCursor(UI_CURSOR_WAIT); - -	// Hide all the UI widgets first and draw a frame -	BOOL prev_draw_ui = gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI); - -	if ( prev_draw_ui != show_ui) -	{ -		LLPipeline::toggleRenderDebugFeature((void*)LLPipeline::RENDER_DEBUG_FEATURE_UI); -	} - -	BOOL hide_hud = !gSavedSettings.getBOOL("RenderHUDInSnapshot") && LLPipeline::sShowHUDAttachments; -	if (hide_hud) -	{ -		LLPipeline::sShowHUDAttachments = FALSE; -	} - -	S32 render_name = gSavedSettings.getS32("RenderName"); -	gSavedSettings.setS32("RenderName", 0); -	LLVOAvatar::updateFreezeCounter(1) ; //pause avatar updating for one frame -	 -	S32 w = preview_width ; -	S32 h = preview_height ; -	LLVector2 display_scale = mDisplayScale ; -	mDisplayScale.setVec((F32)w / mWindowRectRaw.getWidth(), (F32)h / mWindowRectRaw.getHeight()) ; -	LLRect window_rect = mWindowRectRaw; -	mWindowRectRaw.set(0, h, w, 0); -	 -	gDisplaySwapBuffers = FALSE; -	gDepthDirty = TRUE; -	glClearColor(0.f, 0.f, 0.f, 0.f); -	glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); -	setup3DRender(); - -	LLFontGL::setFontDisplay(FALSE) ; -	LLHUDText::setDisplayText(FALSE) ; -	if (type == SNAPSHOT_TYPE_OBJECT_ID) -	{ -		gObjectList.renderPickList(gViewerWindow->getWindowRectScaled(), FALSE, FALSE); -	} -	else -	{ -		display(do_rebuild, 1.0f, 0, TRUE); -		render_ui(); -	} - -	S32 glformat, gltype, glpixel_length ; -	if(SNAPSHOT_TYPE_DEPTH == type) -	{ -		glpixel_length = 4 ; -		glformat = GL_DEPTH_COMPONENT ;  -		gltype = GL_FLOAT ; -	} -	else -	{ -		glpixel_length = 3 ; -		glformat = GL_RGB ; -		gltype = GL_UNSIGNED_BYTE ; -	} - -	raw->resize(w, h, glpixel_length); -	glReadPixels(0, 0, w, h, glformat, gltype, raw->getData()); - -	if(SNAPSHOT_TYPE_DEPTH == type) -	{ -		LLViewerCamera* camerap = LLViewerCamera::getInstance(); -		F32 depth_conversion_factor_1 = (camerap->getFar() + camerap->getNear()) / (2.f * camerap->getFar() * camerap->getNear()); -		F32 depth_conversion_factor_2 = (camerap->getFar() - camerap->getNear()) / (2.f * camerap->getFar() * camerap->getNear()); - -		//calculate the depth  -		for (S32 y = 0 ; y < h ; y++) -		{ -			for(S32 x = 0 ; x < w ; x++) -			{ -				S32 i = (w * y + x) << 2 ; -				 -				F32 depth_float_i = *(F32*)(raw->getData() + i); -				 -				F32 linear_depth_float = 1.f / (depth_conversion_factor_1 - (depth_float_i * depth_conversion_factor_2)); -				U8 depth_byte = F32_to_U8(linear_depth_float, camerap->getNear(), camerap->getFar()); -				*(raw->getData() + i + 0) = depth_byte; -				*(raw->getData() + i + 1) = depth_byte; -				*(raw->getData() + i + 2) = depth_byte; -				*(raw->getData() + i + 3) = 255; -			} -		}		 -	} - -	LLFontGL::setFontDisplay(TRUE) ; -	LLHUDText::setDisplayText(TRUE) ; -	mDisplayScale.setVec(display_scale) ; -	mWindowRectRaw = window_rect;	 -	setup3DRender(); -	gDisplaySwapBuffers = FALSE; -	gDepthDirty = TRUE; - -	// POST SNAPSHOT -	if (!gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI)) -	{ -		LLPipeline::toggleRenderDebugFeature((void*)LLPipeline::RENDER_DEBUG_FEATURE_UI); -	} - -	if (hide_hud) -	{ -		LLPipeline::sShowHUDAttachments = TRUE; -	} - -	setCursor(UI_CURSOR_ARROW); - -	if (do_rebuild) -	{ -		// If we had to do a rebuild, that means that the lists of drawables to be rendered -		// was empty before we started. -		// Need to reset these, otherwise we call state sort on it again when render gets called the next time -		// and we stand a good chance of crashing on rebuild because the render drawable arrays have multiple copies of -		// objects on them. -		gPipeline.resetDrawOrders(); -	} -	 -	gSavedSettings.setS32("RenderName", render_name);	 -	 -	return TRUE;*/  }  // Saves the image from the screen to the specified filename and path. diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 685be043fc..8b48dd10d3 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -3404,26 +3404,14 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)  	gGLLastMatrix = NULL;  	glLoadMatrixd(gGLModelView); -	renderHighlights(); -	mHighlightFaces.clear(); - -	renderDebug(); - -	LLVertexBuffer::unbind(); - -	if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI)) -	{ -		// Render debugging beacons. -		gObjectList.renderObjectBeacons(); -		gObjectList.resetObjectBeacons(); -	} -  	if (occlude)  	{  		occlude = FALSE;  		gGLLastMatrix = NULL;  		glLoadMatrixd(gGLModelView);  		doOcclusion(camera); +		gGLLastMatrix = NULL; +		glLoadMatrix(gGLModelView);  	}  } @@ -6893,6 +6881,24 @@ void LLPipeline::renderDeferredLighting()  		mRenderTypeMask = render_mask;  	} +	{ +		//render highlights, etc. +		renderHighlights(); +		mHighlightFaces.clear(); + +		renderDebug(); + +		LLVertexBuffer::unbind(); + +		if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI)) +		{ +			// Render debugging beacons. +			gObjectList.renderObjectBeacons(); +			LLHUDObject::renderAll(); +			gObjectList.resetObjectBeacons(); +		} +	} +  	mScreen.flush();  } | 
