parent
53b2efd131
commit
f7f9601567
|
|
@ -582,7 +582,7 @@ void LLPluginProcessParent::idle(void)
|
|||
params.args.add("-e");
|
||||
params.args.add("tell application \"Terminal\"");
|
||||
params.args.add("-e");
|
||||
params.args.add(STRINGIZE("set win to do script \"gdb -pid "
|
||||
params.args.add(STRINGIZE("set win to do script \"lldb -pid "
|
||||
<< mProcess->getProcessID() << "\""));
|
||||
params.args.add("-e");
|
||||
params.args.add("do script \"continue\" in win");
|
||||
|
|
|
|||
|
|
@ -117,8 +117,8 @@ vec3 pbrBaseLight(vec3 diffuseColor,
|
|||
vec3 additive,
|
||||
vec3 atten);
|
||||
|
||||
vec3 pbrPunctual(vec3 diffuseColor, vec3 specularColor,
|
||||
float perceptualRoughness,
|
||||
vec3 pbrPunctual(vec3 diffuseColor, vec3 specularColor,
|
||||
float perceptualRoughness,
|
||||
float metallic,
|
||||
vec3 n, // normal
|
||||
vec3 v, // surface point to camera
|
||||
|
|
@ -193,7 +193,7 @@ void main()
|
|||
|
||||
if (GET_GBUFFER_FLAG(GBUFFER_FLAG_HAS_PBR))
|
||||
{
|
||||
vec3 orm = texture(specularRect, tc).rgb;
|
||||
vec3 orm = texture(specularRect, tc).rgb;
|
||||
float perceptualRoughness = orm.g;
|
||||
float metallic = orm.b;
|
||||
float ao = orm.r;
|
||||
|
|
@ -298,7 +298,6 @@ void main()
|
|||
vec4 fogged = applyWaterFogViewLinear(pos.xyz, vec4(color, bloom));
|
||||
color = fogged.rgb;
|
||||
#endif
|
||||
frag_color.rgb = textureLod(heroProbes, vec4(norm.xyz, 0), 0).rgb;
|
||||
//frag_color.rgb = max(color.rgb, vec3(0)); //output linear since local lights will be added to this shader's results
|
||||
frag_color.rgb = max(color.rgb, vec3(0)); //output linear since local lights will be added to this shader's results
|
||||
frag_color.a = 0.0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -333,20 +333,14 @@ void LLReflectionMapManager::update()
|
|||
|
||||
{
|
||||
LL_PROFILE_ZONE_NAMED_CATEGORY_DISPLAY("rmmu - realtime");
|
||||
// update the closest dynamic probe realtime
|
||||
// should do a full irradiance pass on "odd" frames and a radiance pass on "even" frames
|
||||
mHeroProbe->autoAdjustOrigin();
|
||||
|
||||
// store and override the value of "isRadiancePass" -- parts of the render pipe rely on "isRadiancePass" to set
|
||||
// lighting values etc
|
||||
|
||||
mHeroProbe->mOrigin.load3(LLViewerCamera::instance().mOrigin.mV);
|
||||
bool radiance_pass = isRadiancePass();
|
||||
mRadiancePass = mRealtimeRadiancePass;
|
||||
mRadiancePass = true;
|
||||
for (U32 i = 0; i < 6; ++i)
|
||||
{
|
||||
updateProbeFace(mHeroProbe, i, mHeroProbeResolution, mHeroArray);
|
||||
}
|
||||
|
||||
mRealtimeRadiancePass = !mRealtimeRadiancePass;
|
||||
|
||||
// restore "isRadiancePass"
|
||||
mRadiancePass = radiance_pass;
|
||||
|
|
@ -713,12 +707,9 @@ void LLReflectionMapManager::updateProbeFace(LLReflectionMap* probe, U32 face, U
|
|||
{
|
||||
LL_PROFILE_GPU_ZONE("probe mip copy");
|
||||
cubeArray->bind(0);
|
||||
//glCopyTexSubImage3D(GL_TEXTURE_CUBE_MAP_ARRAY, mip, 0, 0, probe->mCubeIndex * 6 + face, 0, 0, res, res);
|
||||
|
||||
glCopyTexSubImage3D(GL_TEXTURE_CUBE_MAP_ARRAY, mip, 0, 0, sourceIdx * 6 + face, 0, 0, res, res);
|
||||
//if (i == 0)
|
||||
//{
|
||||
//glCopyTexSubImage3D(GL_TEXTURE_CUBE_MAP_ARRAY, mip, 0, 0, probe->mCubeIndex * 6 + face, 0, 0, res, res);
|
||||
//}
|
||||
|
||||
cubeArray->unbind();
|
||||
}
|
||||
mMipChain[i].flush();
|
||||
|
|
@ -732,7 +723,7 @@ void LLReflectionMapManager::updateProbeFace(LLReflectionMap* probe, U32 face, U
|
|||
gReflectionMipProgram.unbind();
|
||||
}
|
||||
|
||||
if (face == 5 && probe->mType != LLReflectionMap::ProbeType::REFLECTION)
|
||||
if (face == 5)
|
||||
{
|
||||
mMipChain[0].bindTarget();
|
||||
static LLStaticHashedString sSourceIdx("sourceIdx");
|
||||
|
|
@ -1330,10 +1321,11 @@ void LLReflectionMapManager::initReflectionMaps()
|
|||
mDefaultProbe->mProbeIndex = 0;
|
||||
touch_default_probe(mDefaultProbe);
|
||||
|
||||
mHeroProbeResolution = 512;
|
||||
mHeroProbeResolution = 128;
|
||||
|
||||
mHeroArray = new LLCubeMapArray();
|
||||
mHeroArray->allocate(mHeroProbeResolution, 3, 1);
|
||||
// Revise when we have both water and mirrors in hero probes.
|
||||
mHeroArray->allocate(mHeroProbeResolution, 3, 2, true);
|
||||
|
||||
if (mHeroProbe.isNull()) {
|
||||
mHeroProbe = new LLReflectionMap();
|
||||
|
|
|
|||
Loading…
Reference in New Issue