16#ifdef JPH_DEBUG_RENDERER
95 void LockReadBackBuffers();
96 void UnlockReadBackBuffers();
107#ifdef JPH_DEBUG_RENDERER
113 WorldTransformInfluence,
#define JPH_EXPORT
Definition Core.h:286
unsigned int uint
Definition Core.h:546
#define JPH_NAMESPACE_END
Definition Core.h:469
#define JPH_NAMESPACE_BEGIN
Definition Core.h:463
#define JPH_ASSERT(...)
Definition IssueReporting.h:33
const Quat QuatArg
Definition MathTypes.h:28
const Vec3 Vec3Arg
Definition MathTypes.h:19
const Mat44 & Mat44Arg
Definition MathTypes.h:29
uint16 ObjectLayer
Definition ObjectLayer.h:16
Vec3Arg RVec3Arg
Definition Real.h:30
Mat44 RMat44
Definition Real.h:31
Vec3 RVec3
Definition Real.h:29
Buffer that can be read from / written to by a compute shader.
Definition ComputeBuffer.h:18
Definition ComputeQueue.h:20
Interface to run a workload on the GPU.
Definition ComputeSystem.h:16
Definition DebugRenderer.h:47
Class that holds 3 floats. Used as a storage class. Convert to Vec3 for calculations.
Definition Float3.h:13
Class that holds 4 float values. Convert to Vec4 to perform calculations.
Definition Float4.h:11
Ref< ComputeBuffer > mConstantsCB
Definition Hair.h:212
Ref< ComputeBuffer > mVelocityAndDensityReadBackCB
Definition Hair.h:220
void SetScalpVerticesCB(ComputeBuffer *inBuffer)
Ability to externally provide the scalp vertices buffer. This allows skipping skinning the scalp duri...
Definition Hair.h:56
Quat mPrevRotation
Definition Hair.h:186
Hair(const HairSettings *inSettings, RVec3Arg inPosition, QuatArg inRotation, ObjectLayer inLayer)
Constructor / destructor.
Definition Hair.cpp:19
StridedPtr< const Float3 > GetAngularVelocities() const
Definition Hair.h:103
Ref< ComputeBuffer > mShapeVerticesCB
Definition Hair.h:203
Ref< ComputeBuffer > mScalpVerticesCB
Definition Hair.h:197
void SetRenderPositionsCB(ComputeBuffer *inBuffer)
Allow setting the render vertices buffer externally in case it has special requirements for the calli...
Definition Hair.h:71
JPH_HairVelocity * mVelocities
Definition Hair.h:225
RenderPositionsToFloat3 mRenderPositionsToFloat3
Definition Hair.h:194
Ref< ComputeBuffer > mShapeIndicesCB
Definition Hair.h:204
Ref< ComputeBuffer > mScalpJointMatricesCB
Definition Hair.h:196
HairSettings::Gradient Gradient
Definition Hair.h:144
void SetRotation(QuatArg inRotation)
Definition Hair.h:46
ComputeBuffer * GetScalpTrianglesCB() const
Skinned scalp triangle indices.
Definition Hair.h:85
ERenderStrandColor
Definition Hair.h:109
@ PerSimulatedStrand
Definition Hair.h:111
Quat mRotation
Definition Hair.h:187
Ref< ComputeBuffer > mTargetPositionsCB
Definition Hair.h:199
Float3 * mPositions
Definition Hair.h:223
ComputeBuffer * GetRenderPositionsCB() const
Render positions of the hair strands (see HairSettings::mRenderStrands to see where each strand start...
Definition Hair.h:89
const Float3 * mScalpVertices
Definition Hair.h:222
const Float3 * GetPositions() const
Definition Hair.h:100
void InitializeContext(UpdateContext &outCtx, float inDeltaTime, const PhysicsSystem &inSystem)
Definition Hair.cpp:81
const Float3 * mRenderPositions
Definition Hair.h:227
std::function< void(ComputeBuffer *, Float3 *, uint)> RenderPositionsToFloat3
Function that converts the render positions buffer to Float3 vertices for debugging purposes....
Definition Hair.h:65
Quat * mRotations
Definition Hair.h:224
Ref< ComputeBuffer > mShapePlanesCB
Definition Hair.h:202
RefConst< HairSettings > mSettings
Definition Hair.h:182
Ref< ComputeBuffer > mRenderPositionsReadBackCB
Definition Hair.h:221
Array< Ref< ComputeBuffer > > mIterationConstantsCB
Definition Hair.h:213
Ref< ComputeBuffer > mPreviousPositionsCB
Definition Hair.h:208
Ref< ComputeBuffer > mVelocitiesCB
Definition Hair.h:210
void OnTeleported()
The hair will be initialized in its default pose with zero velocity at the new position and rotation ...
Definition Hair.h:53
Ref< ComputeBuffer > mTargetGlobalPoseTransformsCB
Definition Hair.h:200
HairSettings::GradientSampler GradientSampler
Definition Hair.h:145
StridedPtr< const Float3 > GetVelocities() const
Definition Hair.h:102
Ref< ComputeBuffer > mCollisionShapesCB
Definition Hair.h:206
RMat44 GetWorldTransform() const
Definition Hair.h:47
ComputeBuffer * GetPositionsCB() const
Note transposed for better memory access.
Definition Hair.h:86
bool mRenderPositionsOverridden
Definition Hair.h:193
Ref< ComputeBuffer > mGlobalPoseTransformsCB
Definition Hair.h:201
const HairSettings * GetHairSettings() const
Access to the hair settings object which contains the configuration of the hair.
Definition Hair.h:50
ComputeBuffer * GetVelocityAndDensityCB() const
Velocity grid.
Definition Hair.h:88
const Float3 * GetScalpVertices() const
Access to the resulting simulation data (only valid when ReadBackGPUState has been called and the buf...
Definition Hair.h:99
Ref< ComputeBuffer > mVelocitiesReadBackCB
Definition Hair.h:219
ComputeBuffer * GetScalpVerticesCB() const
Access to the resulting simulation data.
Definition Hair.h:84
void Init(ComputeSystem *inComputeSystem)
Initialize.
Definition Hair.cpp:42
const Float4 * GetGridVelocityAndDensity() const
Definition Hair.h:104
const Float3 * GetRenderPositions() const
Definition Hair.h:105
Ref< ComputeBuffer > mMaterialsCB
Definition Hair.h:207
void OverrideRenderPositionsCB(const RenderPositionsToFloat3 &inRenderPositionsToFloat3)
Enable externally set render vertices buffer (with potentially different vertex layout)....
Definition Hair.h:68
Ref< ComputeBuffer > mCollisionPlanesCB
Definition Hair.h:205
void SetPosition(RVec3Arg inPosition)
Position and rotation of the hair in world space.
Definition Hair.h:45
Ref< ComputeBuffer > mRenderPositionsCB
Definition Hair.h:214
bool mTeleported
Definition Hair.h:188
void Draw(const DrawSettings &inSettings, DebugRenderer *inRenderer)
Debug functionality to draw the hair and its simulation properties.
Definition Hair.cpp:755
Mat44 mScalpToHead
Definition Hair.h:191
Ref< ComputeBuffer > mPositionsCB
Definition Hair.h:209
Ref< ComputeBuffer > mPositionsReadBackCB
Definition Hair.h:218
ComputeBuffer * GetVelocitiesCB() const
Note transposed for better memory access.
Definition Hair.h:87
void SetScalpToHead(Mat44Arg inMat)
When skipping skinning, this allow specifying a transform that transforms the scalp mesh into head sp...
Definition Hair.h:62
ObjectLayer mLayer
Definition Hair.h:189
RVec3 mPosition
Definition Hair.h:185
Ref< ComputeBuffer > mVelocityAndDensityCB
Definition Hair.h:211
RVec3 mPrevPosition
Definition Hair.h:184
void SetScalpTrianglesCB(ComputeBuffer *inBuffer)
Ability to externally provide the scalp triangle indices buffer. This allows skipping skinning the sc...
Definition Hair.h:59
const Quat * GetRotations() const
Definition Hair.h:101
Ref< ComputeBuffer > mScalpTrianglesCB
Definition Hair.h:198
Ref< ComputeBuffer > mScalpVerticesReadBackCB
Definition Hair.h:217
const Float4 * mVelocityAndDensity
Definition Hair.h:226
Gradient along a hair strand of a value, e.g. compliance, friction, etc.
Definition HairSettings.h:110
Definition HairSettings.h:150
This class defines the setup of a hair groom, it can be shared between multiple hair instances.
Definition HairSettings.h:22
This class loads the shaders used by the hair system. This can be shared among all hair instances.
Definition HairShaders.h:14
Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.
Definition Mat44.h:13
static JPH_INLINE Mat44 sIdentity()
Identity matrix.
Definition Mat44.inl:35
static JPH_INLINE Mat44 sRotationTranslation(QuatArg inR, Vec3Arg inT)
Get matrix that rotates and translates.
Definition Mat44.inl:149
Definition PhysicsSystem.h:30
Definition Reference.h:166
Definition Reference.h:110
Base class for all shapes (collision volume of a body). Defines a virtual interface for collision det...
Definition Shape.h:185
Definition StridedPtr.h:14
bool mDrawUnloadedRods
Draw rods in their unloaded pose. This pose is obtained by removing gravity influence from the modele...
Definition Hair.h:126
bool mDrawGridDensity
Draws the current grid density of the hair.
Definition Hair.h:131
bool mDrawRenderStrands
Draws the render strands (slow, for debugging purposes!).
Definition Hair.h:134
bool mDrawOrientations
Draws a coordinate space for each simulated vertex.
Definition Hair.h:129
bool mDrawSkinPoints
Draws the skinning points on the scalp.
Definition Hair.h:133
bool mDrawGridVelocity
Draws the velocity of each grid cell as an arrow.
Definition Hair.h:132
uint mSimulationStrandEnd
Definition Hair.h:123
bool mDrawVertexVelocity
Draws the velocity at each simulated vertex as an arrow.
Definition Hair.h:127
bool mDrawNeutralDensity
Draws grid density of the hair in its neutral pose.
Definition Hair.h:130
bool mDrawInitialGravity
Draws the configured initial gravity vector used to calculate the unloaded vertex positions.
Definition Hair.h:135
uint mSimulationStrandBegin
This specifies the range of simulation strands to draw, when drawing render strands we only draw the ...
Definition Hair.h:122
ERenderStrandColor mRenderStrandColor
Color for each strand.
Definition Hair.h:136
bool mDrawAngularVelocity
Draws the angular velocity at each simulated vertex as an arrow.
Definition Hair.h:128
bool mDrawRods
Draws the simulated rods.
Definition Hair.h:125
RefConst< Shape > mShape
Definition Hair.h:157
Vec3 mLinearVelocity
Definition Hair.h:155
Mat44 mTransform
Definition Hair.h:153
Vec3 mAngularVelocity
Definition Hair.h:156
Vec3 mScale
Definition Hair.h:154
LeafShape(Mat44Arg inTransform, Vec3Arg inScale, Vec3Arg inLinearVelocity, Vec3Arg inAngularVelocity, const Shape *inShape)
Definition Hair.h:151
Array< LeafShape > mShapes
Definition Hair.h:176
bool mNeedsCollision
Definition Hair.h:166
float mTwoDivDeltaTime
Definition Hair.h:173
float mInvDeltaTimeSq
Definition Hair.h:172
float mHalfDeltaTime
Definition Hair.h:171
bool mNeedsGrid
Definition Hair.h:167
Quat mDeltaTransformQuat
Definition Hair.h:164
Vec3 mSubStepGravity
Definition Hair.h:175
float mDeltaTime
Definition Hair.h:170
uint mNumIterations
Definition Hair.h:165
bool mGlobalPoseOnly
Definition Hair.h:168
Mat44 mDeltaTransform
Definition Hair.h:163
bool mHasTransformChanged
Definition Hair.h:169
float mTimeRatio
Definition Hair.h:174