Commit Graph

68 Commits

Author SHA1 Message Date
Shyotl
3e0b75c4f7 Fix issue where alpha_mode_none and alpha_mode_emissive on rigged faces were being alpha tested and discarded. 2019-04-09 16:01:14 -05:00
Shyotl
5a9ad787d5 Made rigged matrix cache toggleable via setting, for testing. Speculative fix for hairbase incorrectly appearing on animesh. 2019-03-19 15:17:14 -05:00
Shyotl
b81373366b Animesh test changes. Also stop screwing with my commit messages, github. 2019-03-17 02:35:07 -05:00
Shyotl
aa37a0b539 Intermediary commit #3 2019-03-17 01:08:34 -05:00
Shyotl
3a78568a6f Intermediary commit #2. 2019-03-16 21:35:33 -05:00
Shyotl
2d8fbb89c9 Intermiediary commit. 2019-03-16 17:51:00 -05:00
Shyotl
5d75b3b223 Prep for animesh. 2019-03-09 01:51:50 -06:00
Shyotl
736696ac36 Track glEnable states via static refs instead of map lookups.
Sync light state, bound shader, and various gl context states similarly to render matrices.
Texture handles now refcounted, as multiple viewer textures could ref the same handle (cubemaps do this)
Clean up gl extension loading a bit. Not necessary, but only look for ARB variants if not included in current core version. Removed unused extensions.
Use core shader api if supported, else use ARB. (FN signatures are identical. Just doing some pointer substitution to ARB if not core.)
Attempt at improving VBO update batching. Subdata updates better batched to gether per-frame.
There's probably other stuff I forgot that is in this changeset, too.

Todo: Fix lightstate assertion when toggling fullscreen with shaders off.
2018-11-19 00:37:48 -06:00
Shyotl
55ad048b3a Bring specular behavior back in line with LL viewer. 2018-10-12 01:40:31 -05:00
Shyotl
cf1ce7d7e5 Per-frame per-avie rigged transform matrix cache from Alchemy, with minor alterations. 2018-02-04 23:02:07 -06:00
Shyotl
f4a713a500 Merge. 2017-03-14 04:02:53 -05:00
Shyotl
98516a2a22 Bento hell and back, and back to hell, and back. 2017-01-11 03:55:36 -06:00
Shyotl
b8f1468ab5 Fix rigged faces not properly displaying mats properties on alpha faces. 2016-08-09 00:22:40 -05:00
Shyotl
4b318d072a Wokaround for viewer crasher. Related to rigged mesh. 2016-08-09 00:18:28 -05:00
Lirusaito
e62261edb2 Sync with Alchemy, includes much awaited lib updates for Linux
Applies ALCH-420 - Replace all invisiprims with fully transparent texture and remove dead code paths
-ARC no longer takes invisis into consideration.

Syncs some script keywords updates.

Changes all "\n" in llfloaterabout.cpp to '\n' because screw.dat
2016-03-27 23:24:17 -04:00
Shyotl
1c627317ec No longer include llerrorlegacy.h. Updated llstl to include deletion utilites. 2015-06-19 03:54:20 -05:00
Shyotl
966c5aa409 Remove redundant methods of checking if shaders are enabled. Just use LLGLSLShader::sNoFixedFunction. 2015-05-16 02:31:06 -05:00
Shyotl
8943439629 Remove dupilicate perlin noise impl, and update the remaining one. 2015-05-16 02:30:32 -05:00
Shyotl
315618a18b Fixed materials specularmap + glossiness=0 combination. 2014-08-23 01:34:25 -05:00
Shyotl
061178ad82 Migrated gl matrix stack to LLMatrix4a 2014-06-22 03:34:51 -05:00
Shyotl
8f6a578ec0 Migration to LLMatrix4a instead of glh::matrix4f 2014-06-15 22:42:32 -05:00
Shyotl
24ca32f9f7 Replace gluProjectf/gluUnprojectf with own versions. Also changed gGLModelView/gGLProjection and other related matrices to LLMatrix4a. 2014-06-06 01:59:04 -05:00
Shyotl
67c8ac2b04 Skinned shaders were exceeding maximum amount of vertex uniforms on amd hardware.
-Changed the transform matrix uniform to a 3x4 matrix and packed translation into it to free up uniforms. (3x3 is converted to 3x4 internally, so we were needlessly eating 3*52 extra uniform slots. translationPalette might also have been treated as a vec4 internally too, wasting 52 more slots.)
-matrix3x4 requires opengl2.1 and newer, so added a new featuretable mask.
-Also added a featuretable mask to disable hardware skinning and deferred shading on hardware with less than 1024 vertex uniforms.
NOTE: On old old old amd hardware, evidently a 3x4 matrix might be upgraded to 4x4. I'm unsure, but I doubt such hardware has 1024+ uniform components available to begin with. 4x3 supposedly doesn't do this, but opengl is column-major, so this makes little sense.
2014-05-17 03:31:45 -05:00
Shyotl
5805fe636a Determine if to stuff shiny data into alpha component a bit differently. Cuts out a lot of crazy logic and lets us choose based off of target renderpass. 2014-05-14 03:38:16 -05:00
Shyotl
3db9c6a9ff Try mask-based object shader configuration, instead of a bazillion hard-coded shader globals. Should be a bit more consistent. (non-deferred only, for now)
Also abuse discard in alpha shaders, instead of processing invisible fragments.
2014-05-14 03:30:02 -05:00
Shyotl
7158a3c83d Fixed an annoying showstopper regarding rigged attachment vertex corruption. Rigged meshes have can have poor weighting, causing potential div-by-zero issues. 2014-05-08 15:11:12 -05:00
Shyotl
5988f6cf88 Updated rigged mesh face batch/pool handling.
Fixed issue with fullbright and glow occlusion.
RenderTransparentWater toggling should work more gracefully.
Fixed some bugs in general drawpool classification for faces. Bump pool was superceding more than it should have.
2014-03-27 21:27:40 -05:00
Shyotl
dda7cb5791 Lazy workaround avoiding undefined behavior for rigged meshes with invalid joints. 2014-02-10 20:20:03 -06:00
Shyotl
f7fdeeea9b Be super sure not to let rigged vert weights extend beyond actual joint count. 2014-02-10 20:18:39 -06:00
Shyotl
58b7fe5fef Avoid potential buffer over-read in shader, overrun in application. 2014-01-28 16:28:03 -06:00
Latif Khalifa
aaf06fa2cc FITMESH-6, FITMESH-20 Fix for some objects disappearing when hardware skinning enabled and ALM disabled.
NOTE: There appears to be a driver bug on some AMD systems that will cause hardware skinning to break given different combinations of shaders. Users should be advised that if they see improper skinning on their avatars, they should either enable advanced lighting model, or disable atmospheric shaders or hardware skinning.

davep
2014-01-24 12:26:43 +01:00
Latif Khalifa
269deb56e6 Fitted mesh 2014-01-24 01:11:27 +01:00
Shyotl
af8f8bb040 Mats. 2013-11-02 01:20:05 -05:00
Shyotl
8441bc80a4 Use LLStaticHashedString for faster uniform lookup. 2013-10-26 16:26:46 -05:00
Shyotl
ccff8475c1 Mesh vertex corruption fix taken from LL upstream. 2013-07-11 20:54:04 -05:00
Shyotl
03272c8875 Clamp LLMeshSkinInfo::mJointNames to a max of 64 entries. Also checking size in lldrawpoolavatar(Redundant checks added to just match similar logic LLRiggedVolume::update more closely.) 2013-03-30 01:01:53 -05:00
Shyotl
1965224912 Stabbed some blendfunc state issues. This fixes some ui flicker which popped up recently (perhaps after merging, or I just never noticed it before then) 2013-03-30 00:57:49 -05:00
Shyotl
76f3dc9e19 Massive sunshine/viewer-dev catchup. Further implemented serverside baking and added/updated metrics feedback. 2013-02-19 01:50:46 -06:00
Drake Arconis
f50d23a0d4 Fast Timers brought up to linden equiv 2012-09-14 00:30:52 -04:00
Shyotl
b101bb0001 MAINT-646: Faster traversal of render batch lists. https://bitbucket.org/davep/viewer-development/changeset/38b7779af5f9 2012-07-17 23:38:34 -05:00
Drake Arconis
c464a8da30 Merge branch 'V2MultiWear' of bitbucket.org:Lirusaito/singularityviewer into AltCompilers
Conflicts:
	indra/cmake/00-Common.cmake
	indra/newview/llvovolume.cpp
2012-07-02 20:16:56 +00:00
Drake Arconis
ece9dda7b4 Initial support for the Clang compiler and numerous warning fixes 2012-07-02 19:45:41 +00:00
Shyotl
67e1a3b004 Lindie viewer-dev catchup regarding rendering pipeline. 2012-06-30 20:05:31 -05:00
Shyotl
e1d243272f V3 merge part 1 / 2. 2012-04-13 22:39:39 -05:00
Siana Gearz
70438fa06f Catching up with Lindies part 3 2012-03-26 15:01:53 +02:00
Shyotl
6374f012de new fasttimers, including ui. 2012-01-23 18:30:54 -06:00
Shyotl
b338506229 VBO updates from Vir Lindens shining fixes. VBO mapping perf improvement. Alpha rigged attachments render fix, hopefully. Crashfix in void pushWireframe. 2012-01-19 19:01:44 -06:00
Shyotl
ffb285c6ff Huge renderer update (WIP). Still plenty to do, especially pertaining to UI.
-Nametag bubble visbility is oddly inconsistent. May vanish with future planned UI merges...
-VBOs are PAINFULLY slow on ATI hardware. This repos self-compiled davep/shining-fixes branch, so I'll leave the ball in LL's court for now regarding that.
2011-12-09 14:02:29 -06:00
Shyotl
83e8a9076b Several gl calls now wrapped via LLRender (gGL) as prep for future changes:
glMatrixMode -> gGL.matrixMode
..GL_MODELVIEW -> LLRender::MM_MODELVIEW
..GL_POJECTION -> LLRender::MM_PROJECTION
..GL_TEXTURE -> LLRender::MM_TEXTURE
glMultMatrix -> gGL.multMatrix
glLoadMatrixf -> gGL.loadMatrix
glPushMatrix -> gGL.pushMatrix
glPopMatrix -> gGL.popMatrix
glLoadIdentity -> gGL.loadIdentity
glRotatef -> gGL.rotatef
glTransformf -> gGL.transformf
glOrtho -> gGL.ortho
glColor3f -> gGL.diffuseColor3f
glColor3fv -> gGL.diffuseColor3fv
glColor4f -> gGL.diffuseColor4f
glColor4fv -> gGL.diffuseColor4fv
glColor4ubv -> gGL.diffuseColor4ubv
glLightModelfv(GL_LIGHT_MODEL_AMBIENT -> gGL.
2011-11-21 15:55:44 -06:00
Shyotl
1fd908b2c4 Removed maximum_alpha uniform (as it's always 1.0 anyhow) 2011-11-19 15:13:16 -06:00