From 47ffcdb93d6e2ac1f9d497e43e0213c98d129254 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Tue, 6 Apr 2010 16:24:08 -0500 Subject: Rigged attachments (almost works). --- indra/newview/lldrawpoolavatar.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'indra/newview/lldrawpoolavatar.h') diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h index b947943619..c43aa9b1e3 100644 --- a/indra/newview/lldrawpoolavatar.h +++ b/indra/newview/lldrawpoolavatar.h @@ -90,10 +90,12 @@ public: void beginRigid(); void beginFootShadow(); void beginSkinned(); + void beginRigged(); void endRigid(); void endFootShadow(); void endSkinned(); + void endRigged(); void beginDeferredImpostor(); void beginDeferredRigid(); -- cgit v1.2.3 From 1651dd9c5b98923716a80ea476ec47360748f343 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Mon, 19 Apr 2010 23:32:27 -0500 Subject: Remove foot shadows, renaming foot shadow pass to impostor pass. --- indra/newview/lldrawpoolavatar.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/newview/lldrawpoolavatar.h') diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h index c43aa9b1e3..45f694ccd9 100644 --- a/indra/newview/lldrawpoolavatar.h +++ b/indra/newview/lldrawpoolavatar.h @@ -88,12 +88,12 @@ public: /*virtual*/ void renderShadow(S32 pass); void beginRigid(); - void beginFootShadow(); + void beginImpostor(); void beginSkinned(); void beginRigged(); void endRigid(); - void endFootShadow(); + void endImpostor(); void endSkinned(); void endRigged(); -- cgit v1.2.3 From bf8bcfe4f76f1805a908af0368e334261b764591 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Thu, 22 Apr 2010 00:14:06 -0500 Subject: Deferred shading for rigged attachments. --- indra/newview/lldrawpoolavatar.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'indra/newview/lldrawpoolavatar.h') diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h index 45f694ccd9..b42cc54622 100644 --- a/indra/newview/lldrawpoolavatar.h +++ b/indra/newview/lldrawpoolavatar.h @@ -36,6 +36,7 @@ #include "lldrawpool.h" class LLVOAvatar; +class LLGLSLShader; class LLDrawPoolAvatar : public LLFacePool { @@ -100,10 +101,12 @@ public: void beginDeferredImpostor(); void beginDeferredRigid(); void beginDeferredSkinned(); + void beginDeferredRigged(); void endDeferredImpostor(); void endDeferredRigid(); void endDeferredSkinned(); + void endDeferredRigged(); /*virtual*/ LLViewerTexture *getDebugTexture(); /*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display @@ -112,6 +115,7 @@ public: static BOOL sSkipOpaque; static BOOL sSkipTransparent; + static LLGLSLShader* sVertexProgram; }; class LLVertexBufferAvatar : public LLVertexBuffer -- cgit v1.2.3 From f324787a70b8fccc7a8ea202805bf726fba765a7 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Sat, 1 May 2010 00:45:44 -0500 Subject: Rigged attachment integration WIP. --- indra/newview/lldrawpoolavatar.h | 42 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) (limited to 'indra/newview/lldrawpoolavatar.h') diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h index b42cc54622..0ebb035f2a 100644 --- a/indra/newview/lldrawpoolavatar.h +++ b/indra/newview/lldrawpoolavatar.h @@ -37,6 +37,11 @@ class LLVOAvatar; class LLGLSLShader; +class LLFace; +class LLMeshSkinInfo; +class LLVolume; +class LLVolumeFace; + class LLDrawPoolAvatar : public LLFacePool { @@ -91,12 +96,14 @@ public: void beginRigid(); void beginImpostor(); void beginSkinned(); - void beginRigged(); - + void beginRiggedSimple(); + void beginRiggedShinySimple(); + void endRigid(); void endImpostor(); void endSkinned(); - void endRigged(); + void endRiggedSimple(); + void endRiggedShinySimple(); void beginDeferredImpostor(); void beginDeferredRigid(); @@ -108,11 +115,40 @@ public: void endDeferredSkinned(); void endDeferredRigged(); + void updateRiggedFaceVertexBuffer(LLFace* facep, + const LLMeshSkinInfo* skin, + LLVolume* volume, + const LLVolumeFace& vol_face, + U32 data_mask); + + void renderRigged(LLVOAvatar* avatar, U32 type, const U32 data_mask); + void renderRiggedSimple(LLVOAvatar* avatar); + void renderRiggedShinySimple(LLVOAvatar* avatar); + /*virtual*/ LLViewerTexture *getDebugTexture(); /*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display void renderAvatars(LLVOAvatar *single_avatar, S32 pass = -1); // renders only one avatar if single_avatar is not null. + typedef enum + { + RIGGED_SIMPLE = 0, + RIGGED_SHINY_SIMPLE, + RIGGED_SHINY_FULLBRIGHT, + RIGGED_SHINY_BUMP, + RIGGED_BUMP, + RIGGED_FULLBRIGHT, + RIGGED_ALPHA, + NUM_RIGGED_PASSES, + RIGGED_UNKNOWN, + } eRiggedPass; + + + void addRiggedFace(LLFace* facep, U32 type); + void removeRiggedFace(LLFace* facep, U32 type = RIGGED_UNKNOWN); + + std::vector mRiggedFace[NUM_RIGGED_PASSES]; + static BOOL sSkipOpaque; static BOOL sSkipTransparent; static LLGLSLShader* sVertexProgram; -- cgit v1.2.3 From 2f95a549a365ca2bedf7824014a687b3af88e20f Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Sat, 1 May 2010 01:55:21 -0500 Subject: Fullbrigt skinned and fix for silly crash from not removing face references. --- indra/newview/lldrawpoolavatar.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'indra/newview/lldrawpoolavatar.h') diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h index 0ebb035f2a..8443069376 100644 --- a/indra/newview/lldrawpoolavatar.h +++ b/indra/newview/lldrawpoolavatar.h @@ -97,12 +97,14 @@ public: void beginImpostor(); void beginSkinned(); void beginRiggedSimple(); + void beginRiggedFullbright(); void beginRiggedShinySimple(); void endRigid(); void endImpostor(); void endSkinned(); void endRiggedSimple(); + void endRiggedFullbright(); void endRiggedShinySimple(); void beginDeferredImpostor(); @@ -123,6 +125,7 @@ public: void renderRigged(LLVOAvatar* avatar, U32 type, const U32 data_mask); void renderRiggedSimple(LLVOAvatar* avatar); + void renderRiggedFullbright(LLVOAvatar* avatar); void renderRiggedShinySimple(LLVOAvatar* avatar); /*virtual*/ LLViewerTexture *getDebugTexture(); @@ -133,11 +136,11 @@ public: typedef enum { RIGGED_SIMPLE = 0, + RIGGED_FULLBRIGHT, RIGGED_SHINY_SIMPLE, RIGGED_SHINY_FULLBRIGHT, RIGGED_SHINY_BUMP, RIGGED_BUMP, - RIGGED_FULLBRIGHT, RIGGED_ALPHA, NUM_RIGGED_PASSES, RIGGED_UNKNOWN, -- cgit v1.2.3 From dc15fc5ba0fcf9907d834b523e6622d800d7ed4e Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Sat, 1 May 2010 02:56:23 -0500 Subject: Fullbright shiny skinned. --- indra/newview/lldrawpoolavatar.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'indra/newview/lldrawpoolavatar.h') diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h index 8443069376..d758bb07f0 100644 --- a/indra/newview/lldrawpoolavatar.h +++ b/indra/newview/lldrawpoolavatar.h @@ -98,6 +98,7 @@ public: void beginSkinned(); void beginRiggedSimple(); void beginRiggedFullbright(); + void beginRiggedFullbrightShiny(); void beginRiggedShinySimple(); void endRigid(); @@ -105,6 +106,7 @@ public: void endSkinned(); void endRiggedSimple(); void endRiggedFullbright(); + void endRiggedFullbrightShiny(); void endRiggedShinySimple(); void beginDeferredImpostor(); @@ -127,6 +129,7 @@ public: void renderRiggedSimple(LLVOAvatar* avatar); void renderRiggedFullbright(LLVOAvatar* avatar); void renderRiggedShinySimple(LLVOAvatar* avatar); + void renderRiggedFullbrightShiny(LLVOAvatar* avatar); /*virtual*/ LLViewerTexture *getDebugTexture(); /*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display @@ -137,11 +140,11 @@ public: { RIGGED_SIMPLE = 0, RIGGED_FULLBRIGHT, - RIGGED_SHINY_SIMPLE, - RIGGED_SHINY_FULLBRIGHT, - RIGGED_SHINY_BUMP, - RIGGED_BUMP, + RIGGED_SHINY, + RIGGED_FULLBRIGHT_SHINY, + RIGGED_GLOW, RIGGED_ALPHA, + RIGGED_FULLBRIGHT_ALPHA, NUM_RIGGED_PASSES, RIGGED_UNKNOWN, } eRiggedPass; -- cgit v1.2.3 From 58defe76b0eed6f773b961e8ba5cd3aeb856467a Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Sun, 2 May 2010 00:28:30 -0500 Subject: Rigged glow. --- indra/newview/lldrawpoolavatar.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'indra/newview/lldrawpoolavatar.h') diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h index d758bb07f0..59f9cf7ddb 100644 --- a/indra/newview/lldrawpoolavatar.h +++ b/indra/newview/lldrawpoolavatar.h @@ -100,6 +100,9 @@ public: void beginRiggedFullbright(); void beginRiggedFullbrightShiny(); void beginRiggedShinySimple(); + void beginRiggedAlpha(); + void beginRiggedFullbrightAlpha(); + void beginRiggedGlow(); void endRigid(); void endImpostor(); @@ -108,6 +111,9 @@ public: void endRiggedFullbright(); void endRiggedFullbrightShiny(); void endRiggedShinySimple(); + void endRiggedAlpha(); + void endRiggedFullbrightAlpha(); + void endRiggedGlow(); void beginDeferredImpostor(); void beginDeferredRigid(); @@ -125,11 +131,14 @@ public: const LLVolumeFace& vol_face, U32 data_mask); - void renderRigged(LLVOAvatar* avatar, U32 type, const U32 data_mask); + void renderRigged(LLVOAvatar* avatar, U32 type, const U32 data_mask, bool glow = false); void renderRiggedSimple(LLVOAvatar* avatar); + void renderRiggedAlpha(LLVOAvatar* avatar); + void renderRiggedFullbrightAlpha(LLVOAvatar* avatar); void renderRiggedFullbright(LLVOAvatar* avatar); void renderRiggedShinySimple(LLVOAvatar* avatar); void renderRiggedFullbrightShiny(LLVOAvatar* avatar); + void renderRiggedGlow(LLVOAvatar* avatar); /*virtual*/ LLViewerTexture *getDebugTexture(); /*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display @@ -151,7 +160,7 @@ public: void addRiggedFace(LLFace* facep, U32 type); - void removeRiggedFace(LLFace* facep, U32 type = RIGGED_UNKNOWN); + void removeRiggedFace(LLFace* facep); std::vector mRiggedFace[NUM_RIGGED_PASSES]; -- cgit v1.2.3 From eb283701afc7ecbe3009a9fb75be1dcb222a383b Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Tue, 4 May 2010 00:45:28 -0500 Subject: Deferred pipeline integration of rigged attachments and cleanup. --- indra/newview/lldrawpoolavatar.h | 51 +++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 6 deletions(-) (limited to 'indra/newview/lldrawpoolavatar.h') diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h index 59f9cf7ddb..bab6f01480 100644 --- a/indra/newview/lldrawpoolavatar.h +++ b/indra/newview/lldrawpoolavatar.h @@ -103,6 +103,8 @@ public: void beginRiggedAlpha(); void beginRiggedFullbrightAlpha(); void beginRiggedGlow(); + void beginPostDeferredAlpha(); + void beginDeferredRiggedAlpha(); void endRigid(); void endImpostor(); @@ -114,24 +116,27 @@ public: void endRiggedAlpha(); void endRiggedFullbrightAlpha(); void endRiggedGlow(); + void endPostDeferredAlpha(); + void endDeferredRiggedAlpha(); void beginDeferredImpostor(); void beginDeferredRigid(); void beginDeferredSkinned(); - void beginDeferredRigged(); + void beginDeferredRiggedSimple(); + void beginDeferredRiggedBump(); void endDeferredImpostor(); void endDeferredRigid(); void endDeferredSkinned(); - void endDeferredRigged(); + void endDeferredRiggedSimple(); + void endDeferredRiggedBump(); void updateRiggedFaceVertexBuffer(LLFace* facep, const LLMeshSkinInfo* skin, LLVolume* volume, - const LLVolumeFace& vol_face, - U32 data_mask); + const LLVolumeFace& vol_face); - void renderRigged(LLVOAvatar* avatar, U32 type, const U32 data_mask, bool glow = false); + void renderRigged(LLVOAvatar* avatar, U32 type, bool glow = false); void renderRiggedSimple(LLVOAvatar* avatar); void renderRiggedAlpha(LLVOAvatar* avatar); void renderRiggedFullbrightAlpha(LLVOAvatar* avatar); @@ -139,6 +144,8 @@ public: void renderRiggedShinySimple(LLVOAvatar* avatar); void renderRiggedFullbrightShiny(LLVOAvatar* avatar); void renderRiggedGlow(LLVOAvatar* avatar); + void renderDeferredRiggedSimple(LLVOAvatar* avatar); + void renderDeferredRiggedBump(LLVOAvatar* avatar); /*virtual*/ LLViewerTexture *getDebugTexture(); /*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display @@ -154,11 +161,43 @@ public: RIGGED_GLOW, RIGGED_ALPHA, RIGGED_FULLBRIGHT_ALPHA, + RIGGED_DEFERRED_BUMP, + RIGGED_DEFERRED_SIMPLE, NUM_RIGGED_PASSES, RIGGED_UNKNOWN, } eRiggedPass; - + typedef enum + { + RIGGED_SIMPLE_MASK = LLVertexBuffer::MAP_VERTEX | + LLVertexBuffer::MAP_NORMAL | + LLVertexBuffer::MAP_TEXCOORD0 | + LLVertexBuffer::MAP_COLOR | + LLVertexBuffer::MAP_WEIGHT4, + RIGGED_FULLBRIGHT_MASK = LLVertexBuffer::MAP_VERTEX | + LLVertexBuffer::MAP_TEXCOORD0 | + LLVertexBuffer::MAP_COLOR | + LLVertexBuffer::MAP_WEIGHT4, + RIGGED_SHINY_MASK = RIGGED_SIMPLE_MASK, + RIGGED_FULLBRIGHT_SHINY_MASK = RIGGED_SIMPLE_MASK, + RIGGED_GLOW_MASK = LLVertexBuffer::MAP_VERTEX | + LLVertexBuffer::MAP_TEXCOORD0 | + LLVertexBuffer::MAP_WEIGHT4, + RIGGED_ALPHA_MASK = RIGGED_SIMPLE_MASK, + RIGGED_FULLBRIGHT_ALPHA_MASK = RIGGED_FULLBRIGHT_MASK, + RIGGED_DEFERRED_BUMP_MASK = LLVertexBuffer::MAP_VERTEX | + LLVertexBuffer::MAP_NORMAL | + LLVertexBuffer::MAP_TEXCOORD0 | + LLVertexBuffer::MAP_BINORMAL | + LLVertexBuffer::MAP_COLOR | + LLVertexBuffer::MAP_WEIGHT4, + RIGGED_DEFERRED_SIMPLE_MASK = LLVertexBuffer::MAP_VERTEX | + LLVertexBuffer::MAP_NORMAL | + LLVertexBuffer::MAP_TEXCOORD0 | + LLVertexBuffer::MAP_COLOR | + LLVertexBuffer::MAP_WEIGHT4, + } eRiggedDataMask; + void addRiggedFace(LLFace* facep, U32 type); void removeRiggedFace(LLFace* facep); -- cgit v1.2.3