Merge branch 'stabilization/2106' of https://github.com/o3de/o3de into carlitosan/thecleansing
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"gem_name": "AWSClientAuth",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "c74f2756f5874c0d8d29646dfc9cb0ad",
|
||||
"Name": "AWSClientAuth",
|
||||
"DisplayName": "AWS Client Auth",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "AWS Client Auth provides client authentication and AWS authorization solution",
|
||||
"Tags": ["AWS", "Amazon Cognito", "Authentication", "Authorization"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "AWS Client Authorization",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Amazon Web Services, Inc.",
|
||||
"type": "Code",
|
||||
"summary": "AWS Client Auth provides client authentication and AWS authorization solution.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["AWS", "Network", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+9
-15
@@ -1,18 +1,12 @@
|
||||
{
|
||||
"gem_name": "AWSCore",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "c3710872891c4401b0cbdabfca066cb5",
|
||||
"Name": "AWSCore",
|
||||
"DisplayName": "AWS Core",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "This Gem is automatically enabled when selecting any of the AWS Feature Gems. It provides basic shared functionalities such as AWS SDK initialization and client configuration.",
|
||||
"Tags": [
|
||||
"AWS",
|
||||
"API",
|
||||
"AWSCore",
|
||||
"Cloud",
|
||||
"Connected"
|
||||
],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "AWS Core",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Amazon Web Services, Inc.",
|
||||
"type": "Code",
|
||||
"summary": "The AWS Core Gem provides basic shared AWS functionality such as AWS SDK initialization and client configuration, and is automatically added when selecting any AWS feature Gem.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["AWS", "Network", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
{
|
||||
"gem_name": "AWSMetrics",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "cc6fc7a18fc047039a369a26100fcbbe",
|
||||
"Name": "AWSMetrics",
|
||||
"DisplayName": "AWS Metrics",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "AWS Metrics provides metrics submission and analytics solution.",
|
||||
"Tags": [
|
||||
"AWS",
|
||||
"AWSMetrics",
|
||||
"Cloud"
|
||||
],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "AWS Metrics",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Amazon Web Services, Inc.",
|
||||
"type": "Code",
|
||||
"summary": "The AWS Metrics Gem provides a solution for AWS metrics submission and analytics.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["AWS", "Network", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
{
|
||||
"gem_name": "Achievements",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "6f8d953dd4fc4bb6ad34c9118a7b789f",
|
||||
"Name": "Achievements",
|
||||
"DisplayName": "Achievements",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Platform agnostic interface for retrieving achievement details and unlocking achievements.",
|
||||
"Tags": ["Achievement", "Achievements", "Trophy", "Trophies"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Achievements",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Achievements Gem provides a target platform agnostic interface for retrieving achievement details and unlocking achievements.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Achievements"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,25 +1,12 @@
|
||||
{
|
||||
"gem_name": "AssetMemoryAnalyzer",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "35414634480a4d4c8412c60fe62f4c81",
|
||||
"Name": "AssetMemoryAnalyzer",
|
||||
"DisplayName": "AssetMemoryAnalyzer",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Provides debug visualization of the AssetMemoryDriller to show how individual assets are consuming memory.",
|
||||
"Tags": ["debug"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
}
|
||||
],
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "bab8807a1bc646b3909f3cc200ffeedf",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "ImGui GEM"
|
||||
}
|
||||
]
|
||||
"display_name": "Asset Memory Analyzer",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Asset Memory Analyzer Gem provides tools to profile asset memory usage in Open 3D Engine through ImGUI (Immediate Mode Graphical User Interface).",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "Utillity", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
{
|
||||
"gem_name": "AssetValidation",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "5a5c3c10b91d4b4ea8baef474c5b5d49",
|
||||
"Name": "AssetValidation",
|
||||
"DisplayName": "AssetValidation",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Tools for managing your assets and their dependencies during development",
|
||||
"Tags": ["Untagged"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Asset Validation",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Asset Validation Gem provides seed-related commands to ensure assets have valid seeds for asset bundling.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Utility", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "ImageProcessingAtom",
|
||||
"display_name": "Atom Image Processing",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "AtomShader",
|
||||
"display_name": "Atom Shader Builder",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "Atom_Bootstrap",
|
||||
"display_name": "Atom Bootstrap",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "Atom_Component_DebugCamera",
|
||||
"display_name": "Atom Debug Camera Component",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -80,14 +80,48 @@ float3x3 BuildViewAlignedOrthonormalBasis(in float3 normal, in float3 dirToView)
|
||||
// xy plane in positive z space.
|
||||
float IntegrateEdge(float3 v1, float3 v2)
|
||||
{
|
||||
// This alternate version may work better for platforms where acos() precision is low.
|
||||
/*
|
||||
float x = dot(v1, v2);
|
||||
float y = abs(x);
|
||||
|
||||
float a = 5.42031 + (3.12829 + 0.0902326 * y) * y;
|
||||
float b = 3.45068 + (4.18814 + y) * y;
|
||||
float theta_sinTheta = a / b;
|
||||
|
||||
if (x < 0.0)
|
||||
{
|
||||
theta_sinTheta = PI * rsqrt(saturate(1.0 - x * x)) - theta_sinTheta;
|
||||
}
|
||||
|
||||
float3 u = cross(v1, v2);
|
||||
return theta_sinTheta * u.z;
|
||||
*/
|
||||
|
||||
float cosTheta = dot(v1, v2);
|
||||
cosTheta = clamp(cosTheta, -0.9999, 0.9999);
|
||||
float theta = acos(cosTheta);
|
||||
|
||||
// calculate 1.0 / sin(theta)
|
||||
float invSinTheta = rsqrt(1.0 - cosTheta * cosTheta);
|
||||
float invSinTheta = rsqrt(saturate(1.0 - cosTheta * cosTheta));
|
||||
|
||||
float theta = acos(cosTheta);
|
||||
return cross(v1, v2).z * theta * invSinTheta;
|
||||
return cross(v1, v2).z * ((theta > 0.001) ? theta * invSinTheta : 1.0);
|
||||
}
|
||||
|
||||
// Cheaper version of above which is good enough for diffuse
|
||||
float IntegrateEdgeDiffuse(float3 v1, float3 v2)
|
||||
{
|
||||
float cosTheta = dot(v1, v2);
|
||||
float theta_sinTheta = 0.0;
|
||||
if (cosTheta > 0.0)
|
||||
{
|
||||
float absCosTheta = abs(cosTheta);
|
||||
theta_sinTheta = 1.5708 + (-0.879406 + 0.308609 * absCosTheta) * absCosTheta;
|
||||
}
|
||||
else
|
||||
{
|
||||
theta_sinTheta = PI * rsqrt(1.0 - cosTheta * cosTheta) - theta_sinTheta;
|
||||
}
|
||||
return theta_sinTheta * cross(v1, v2).z;
|
||||
}
|
||||
|
||||
// Returns the unnormalized z plane intersection point between pointAboveHorizon and pointBelowHorizon.
|
||||
@@ -189,42 +223,90 @@ void ClipQuadToHorizon(inout float3 p[5], out int vertexCount)
|
||||
}
|
||||
}
|
||||
|
||||
// Takes 4 points (p) from a quad plus a 5th dummy point, rotates them into the space of the normal, then transforms
|
||||
// the points by the LTC matrix provided. The points are then clipped to the normal's hemisphere. The number of points
|
||||
// after the clip is returned in vertexCount. It's possible for the resulting clipped quad to be a triangle (when 3
|
||||
// points are below the horizon), or a pentagon (when one point is below the horizon), or be a regular 4 point quad.
|
||||
void LtcClipAndNormalizeQuad(in float3 normal, in float3 dirToView, float3x3 ltcMat, inout float3 p[5], out int vertexCount)
|
||||
// Applies the LTC matrix to the clipped points of a quad.
|
||||
void ApplyLtcMatrixToQuad(in float3x3 ltcMat, inout float3 p[5], in int vertexCount)
|
||||
{
|
||||
// Rotate ltc matrix
|
||||
ltcMat = mul(ltcMat, BuildViewAlignedOrthonormalBasis(normal, dirToView));
|
||||
|
||||
// Transform points into ltc space
|
||||
p[0] = mul(ltcMat, p[0].xyz);
|
||||
p[1] = mul(ltcMat, p[1].xyz);
|
||||
p[2] = mul(ltcMat, p[2].xyz);
|
||||
p[3] = mul(ltcMat, p[3].xyz);
|
||||
p[0] = mul(ltcMat, p[0]);
|
||||
p[1] = mul(ltcMat, p[1]);
|
||||
p[2] = mul(ltcMat, p[2]);
|
||||
|
||||
ClipQuadToHorizon(p, vertexCount);
|
||||
|
||||
// visibility check
|
||||
if (vertexCount == 0)
|
||||
if (vertexCount > 3)
|
||||
{
|
||||
return;
|
||||
p[3] = mul(ltcMat, p[3]);
|
||||
}
|
||||
if (vertexCount > 4)
|
||||
{
|
||||
p[4] = mul(ltcMat, p[4]);
|
||||
}
|
||||
}
|
||||
|
||||
// project onto sphere
|
||||
// Projects the clipped points of a quad onto the sphere.
|
||||
void NormalizeQuadPoints(inout float3 p[5], in int vertexCount)
|
||||
{
|
||||
// project quad points onto a sphere.
|
||||
p[0] = normalize(p[0]);
|
||||
p[1] = normalize(p[1]);
|
||||
p[2] = normalize(p[2]);
|
||||
p[3] = normalize(p[3]);
|
||||
p[4] = normalize(p[4]);
|
||||
|
||||
if (vertexCount > 3)
|
||||
{
|
||||
p[3] = normalize(p[3]);
|
||||
}
|
||||
if (vertexCount > 4)
|
||||
{
|
||||
p[4] = normalize(p[4]);
|
||||
}
|
||||
}
|
||||
|
||||
float IntegrateQuad(in float3 v[5], in float vertexCount, in bool doubleSided)
|
||||
// Transforms the 4 points of a quad into the hemisphere of the normal
|
||||
void TransformQuadToOrthonormalBasis(in float3 normal, in float3 dirToView, inout float3 p[4])
|
||||
{
|
||||
float3x3 orthoNormalBasis = BuildViewAlignedOrthonormalBasis(normal, dirToView);
|
||||
|
||||
// Transform points into orthonormal space
|
||||
p[0] = mul(orthoNormalBasis, p[0]);
|
||||
p[1] = mul(orthoNormalBasis, p[1]);
|
||||
p[2] = mul(orthoNormalBasis, p[2]);
|
||||
p[3] = mul(orthoNormalBasis, p[3]);
|
||||
}
|
||||
|
||||
// Integrates the edges of a quad for lambertian diffuse contribution.
|
||||
float IntegrateQuadDiffuse(in float3 v[5], in float vertexCount, in bool doubleSided)
|
||||
{
|
||||
// Integrate
|
||||
float sum = 0.0;
|
||||
|
||||
NormalizeQuadPoints(v, vertexCount);
|
||||
|
||||
// There must be at least 3 points so don't check for the first 2 edges.
|
||||
sum += IntegrateEdgeDiffuse(v[0], v[1]);
|
||||
sum += IntegrateEdgeDiffuse(v[1], v[2]);
|
||||
|
||||
if (vertexCount > 3)
|
||||
{
|
||||
sum += IntegrateEdgeDiffuse(v[2], v[3]);
|
||||
if (vertexCount == 5)
|
||||
{
|
||||
sum += IntegrateEdgeDiffuse(v[3], v[4]);
|
||||
}
|
||||
}
|
||||
|
||||
// Close the polygon
|
||||
sum += IntegrateEdgeDiffuse(v[vertexCount - 1], v[0]);
|
||||
|
||||
// Note: negated due to winding order
|
||||
sum = doubleSided ? abs(sum) : max(0.0, -sum);
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
// Integrates the edges of a quad for specular contribution.
|
||||
float IntegrateQuadSpecular(in float3 v[5], in float vertexCount, in bool doubleSided)
|
||||
{
|
||||
float sum = 0.0;
|
||||
|
||||
NormalizeQuadPoints(v, vertexCount);
|
||||
|
||||
// There must be at least 3 points so don't check for the first 2 edges.
|
||||
sum += IntegrateEdge(v[0], v[1]);
|
||||
sum += IntegrateEdge(v[1], v[2]);
|
||||
@@ -247,26 +329,62 @@ float IntegrateQuad(in float3 v[5], in float vertexCount, in bool doubleSided)
|
||||
return sum;
|
||||
}
|
||||
|
||||
float LtcQuadEvaluate(in float3 normal, in float3 dirToView, in float3x3 ltcMat, in float3 p[4], in bool doubleSided)
|
||||
// Evaluate linear transform cosine lighting for a 4 point quad.
|
||||
// normal - The surface normal
|
||||
// dirToView - Normalized direction from the surface to the view
|
||||
// ltcMat - The LTC matrix for specular, or identity for diffuse.
|
||||
// p[4] - The 4 light positions relative to the surface position.
|
||||
// doubleSided - If the quad emits light from both sides
|
||||
// diffuse - The output diffuse response for the quad light
|
||||
// specular - The output specular response for the quad light
|
||||
void LtcQuadEvaluate(
|
||||
in float3 normal,
|
||||
in float3 dirToView,
|
||||
in float3x3 ltcMat,
|
||||
in float3 p[4],
|
||||
in bool doubleSided,
|
||||
out float diffuse,
|
||||
out float specular)
|
||||
{
|
||||
// Transform the points of the light into the space of the normal's hemisphere.
|
||||
TransformQuadToOrthonormalBasis(normal, dirToView, p);
|
||||
|
||||
// Initialize quad with dummy point at end in case one corner is clipped (resulting in 5 sided polygon)
|
||||
float3 v[5] = {p[0], p[1], p[2], p[3], float3(0.0, 0.0, 0.0)};
|
||||
|
||||
int vertexCount = 0;
|
||||
LtcClipAndNormalizeQuad(normal, dirToView, ltcMat, v, vertexCount);
|
||||
// Clip the light polygon to the normal hemisphere. This is done before the LTC matrix is applied to prevent
|
||||
// parts of the light below the horizon from impacting the surface. The number of points remaining after
|
||||
// the clip is returned in vertexCount. It's possible for the vertexCount of the resulting clipped quad to be
|
||||
// 0 - all points clipped (no work to do, so return)
|
||||
// 3 - 3 points clipped, leaving only a triangular corner of the quad
|
||||
// 4 - 2 or 0 points clipped, leaving a quad
|
||||
// 5 - 1 point clipped leaving a pentagon.
|
||||
|
||||
if (vertexCount > 0)
|
||||
int vertexCount = 0;
|
||||
ClipQuadToHorizon(v, vertexCount);
|
||||
|
||||
if (vertexCount == 0)
|
||||
{
|
||||
return IntegrateQuad(v, vertexCount, doubleSided);
|
||||
// Entire light is below the horizon.
|
||||
return;
|
||||
}
|
||||
return 0.0;
|
||||
|
||||
// IntegrateQuadDiffuse is a cheap approximation compared to specular.
|
||||
diffuse = IntegrateQuadDiffuse(v, vertexCount, doubleSided);
|
||||
|
||||
ApplyLtcMatrixToQuad(ltcMat, v, vertexCount);
|
||||
|
||||
// IntegrateQuadSpecular uses more accurate integration to handle smooth surfaces correctly.
|
||||
specular = IntegrateQuadSpecular(v, vertexCount, doubleSided);
|
||||
}
|
||||
|
||||
// Checks an edge against the horizon and integrates it.
|
||||
// p0 - first point
|
||||
// p1 - second point
|
||||
// prevClipPoint - the clip point saved from the last time an edge went from above to below the horizon
|
||||
// sum - the sum total of all integrations to contribute to.
|
||||
// p0 - First point
|
||||
// p1 - Second point
|
||||
// prevClipPoint - The clip point saved from the last time an edge went from above to below the horizon
|
||||
// ltcMat - The ltc lookup matrix for specular
|
||||
// diffuse - The current sum total of diffuse contribution to apply additional contribution to
|
||||
// specular - The current sum total of specular contribution to apply additional contribution to
|
||||
//
|
||||
// Explanation:
|
||||
// When evaluating edges of a polygon there are four possible states to deal with
|
||||
@@ -283,28 +401,34 @@ float LtcQuadEvaluate(in float3 normal, in float3 dirToView, in float3x3 ltcMat,
|
||||
// 4. Both points are below the horizon
|
||||
// - Do nothing.
|
||||
|
||||
void EvaluatePolyEdge(in float3 p0, in float3 p1, inout float3 prevClipPoint, inout float sum)
|
||||
void EvaluatePolyEdge(in float3 p0, in float3 p1, inout float3 prevClipPoint, in float3x3 ltcMat, inout float diffuse, inout float specular)
|
||||
{
|
||||
if (p0.z > 0.0)
|
||||
{
|
||||
if (p1.z > 0.0)
|
||||
{
|
||||
// Both above horizon
|
||||
sum += IntegrateEdge(normalize(p0), normalize(p1));
|
||||
diffuse += IntegrateEdgeDiffuse(normalize(p0), normalize(p1));
|
||||
specular += IntegrateEdge(normalize(mul(ltcMat, p0)), normalize(mul(ltcMat, p1)));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Going from above to below horizon
|
||||
prevClipPoint = normalize(ClipEdge(p0, p1));
|
||||
sum += IntegrateEdge(normalize(p0), prevClipPoint);
|
||||
prevClipPoint = ClipEdge(p0, p1);
|
||||
diffuse += IntegrateEdgeDiffuse(normalize(p0), normalize(prevClipPoint));
|
||||
specular += IntegrateEdge(normalize(mul(ltcMat, p0)), normalize(mul(ltcMat, prevClipPoint)));
|
||||
}
|
||||
}
|
||||
else if (p1.z > 0.0)
|
||||
{
|
||||
// Going from below to above horizon
|
||||
float3 clipPoint = normalize(ClipEdge(p1, p0));
|
||||
sum += IntegrateEdge(prevClipPoint, clipPoint);
|
||||
sum += IntegrateEdge(clipPoint, normalize(p1));
|
||||
float3 clipPoint = ClipEdge(p1, p0);
|
||||
diffuse += IntegrateEdgeDiffuse(normalize(prevClipPoint), normalize(clipPoint));
|
||||
diffuse += IntegrateEdgeDiffuse(normalize(clipPoint), normalize(p1));
|
||||
|
||||
clipPoint = mul(ltcMat, clipPoint);
|
||||
specular += IntegrateEdge(normalize(mul(ltcMat, prevClipPoint)), normalize(clipPoint));
|
||||
specular += IntegrateEdge(normalize(clipPoint), normalize(mul(ltcMat, p1)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,26 +440,38 @@ void EvaluatePolyEdge(in float3 p0, in float3 p1, inout float3 prevClipPoint, in
|
||||
// positions - The buffer where the polygon positions are
|
||||
// startIdx - The index of the first polygon position
|
||||
// endIdx - The index of the point directly after the last polygon position
|
||||
//
|
||||
// diffuse - The output diffuse response for the polygon light
|
||||
// specular - The output specular response for the polygon light
|
||||
// The most complicated aspect of this function is clipping the polygon against the horizon of the surface point. See
|
||||
// EvaluatePolyEdge() above for details on the general concept. However, this function must deal with the case of the
|
||||
// first point being below the horizon. In that case, it needs to search in reverse from the end for the first point
|
||||
// above the horizon, and save the intersection point between the above and below points so it can be used in
|
||||
// EvaluatePolyEdge() later. During this search it also adjusts the end point index as necessary to avoid processing
|
||||
// those points that are below the horizon.
|
||||
float LtcPolygonEvaluate(in float3 pos, in float3 normal, in float3 dirToView, in float3x3 ltcMat, in StructuredBuffer<float4> positions, in uint startIdx, in uint endIdx)
|
||||
void LtcPolygonEvaluate(
|
||||
in float3 pos,
|
||||
in float3 normal,
|
||||
in float3 dirToView,
|
||||
in float3x3 ltcMat,
|
||||
in StructuredBuffer<float4> positions,
|
||||
in uint startIdx,
|
||||
in uint endIdx,
|
||||
out float diffuse,
|
||||
out float specular
|
||||
)
|
||||
{
|
||||
if (endIdx - startIdx < 3)
|
||||
{
|
||||
return 0.0; // Must have at least 3 points to form a polygon.
|
||||
return; // Must have at least 3 points to form a polygon.
|
||||
}
|
||||
|
||||
// Rotate ltc matrix
|
||||
ltcMat = mul(ltcMat, BuildViewAlignedOrthonormalBasis(normal, dirToView));
|
||||
float3x3 orthonormalMat = BuildViewAlignedOrthonormalBasis(normal, dirToView);
|
||||
|
||||
// Prepare initial values
|
||||
float sum = 0.0; // sum of edge integation
|
||||
float3 p0 = mul(ltcMat, positions[startIdx].xyz - pos); // First point in polygon
|
||||
float3 p0 = mul(orthonormalMat, positions[startIdx].xyz - pos); // First point in polygon
|
||||
diffuse = 0.0;
|
||||
specular = 0.0;
|
||||
|
||||
float3 prevClipPoint = float3(0.0, 0.0, 0.0); // Used to hold previous clip point when polygon dips below horizon.
|
||||
float3 closePoint = p0;
|
||||
@@ -349,10 +485,10 @@ float LtcPolygonEvaluate(in float3 pos, in float3 normal, in float3 dirToView, i
|
||||
// searching backwards, updating the endIdx along the way to avoid reprocessing those points later
|
||||
for ( ; endIdx > startIdx + 1; --endIdx)
|
||||
{
|
||||
float3 prevPoint = mul(ltcMat, positions[endIdx - 1].xyz - pos);
|
||||
if (prevPoint.z > 0)
|
||||
float3 prevPoint = mul(orthonormalMat, positions[endIdx - 1].xyz - pos);
|
||||
if (prevPoint.z > 0.0)
|
||||
{
|
||||
prevClipPoint = normalize(ClipEdge(prevPoint, p0));
|
||||
prevClipPoint = ClipEdge(prevPoint, p0);
|
||||
closePoint = prevClipPoint;
|
||||
break;
|
||||
}
|
||||
@@ -362,7 +498,7 @@ float LtcPolygonEvaluate(in float3 pos, in float3 normal, in float3 dirToView, i
|
||||
// Check if all points below horizon
|
||||
if (endIdx == startIdx + 1)
|
||||
{
|
||||
return 0.0;
|
||||
return;
|
||||
}
|
||||
|
||||
p0 = firstPoint; // Restore the original p0
|
||||
@@ -371,13 +507,14 @@ float LtcPolygonEvaluate(in float3 pos, in float3 normal, in float3 dirToView, i
|
||||
// Evaluate all the points
|
||||
for (uint curIdx = startIdx + 1; curIdx < endIdx; ++curIdx)
|
||||
{
|
||||
float3 p1 = mul(ltcMat, positions[curIdx].xyz - pos); // Current point in polygon
|
||||
EvaluatePolyEdge(p0, p1, prevClipPoint, sum);
|
||||
float3 p1 = mul(orthonormalMat, positions[curIdx].xyz - pos); // Current point in polygon
|
||||
EvaluatePolyEdge(p0, p1, prevClipPoint, ltcMat, diffuse, specular);
|
||||
p0 = p1;
|
||||
}
|
||||
|
||||
EvaluatePolyEdge(p0, closePoint, prevClipPoint, sum);
|
||||
EvaluatePolyEdge(p0, closePoint, prevClipPoint, ltcMat, diffuse, specular);
|
||||
|
||||
// Note: negated due to winding order
|
||||
return -sum;
|
||||
diffuse = -diffuse;
|
||||
specular = -specular;
|
||||
}
|
||||
|
||||
+8
-9
@@ -50,26 +50,25 @@ void ApplyPoylgonLight(ViewSrg::PolygonLight light, Surface surface, inout Light
|
||||
float radiusAttenuation = 1.0 - (falloff * falloff);
|
||||
radiusAttenuation = radiusAttenuation * radiusAttenuation;
|
||||
|
||||
// Diffuse
|
||||
static const float3x3 identityMatrix = float3x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0);
|
||||
float diffuse = LtcPolygonEvaluate(surface.position, surface.normal, lightingData.dirToCamera, identityMatrix, ViewSrg::m_polygonLightPoints, startIndex, endIndex);
|
||||
diffuse = doubleSided ? abs(diffuse) : max(0.0, diffuse);
|
||||
|
||||
// Specular
|
||||
float2 ltcCoords = LtcCoords(dot(surface.normal, lightingData.dirToCamera), surface.roughnessLinear);
|
||||
float3x3 ltcMat = LtcMatrix(SceneSrg::m_ltcMatrix, ltcCoords);
|
||||
float3 specular = LtcPolygonEvaluate(surface.position, surface.normal, lightingData.dirToCamera, ltcMat, ViewSrg::m_polygonLightPoints, startIndex, endIndex);
|
||||
|
||||
float diffuse = 0.0;
|
||||
float specular = 0.0;
|
||||
|
||||
LtcPolygonEvaluate(surface.position, surface.normal, lightingData.dirToCamera, ltcMat, ViewSrg::m_polygonLightPoints, startIndex, endIndex, diffuse, specular);
|
||||
diffuse = doubleSided ? abs(diffuse) : max(0.0, diffuse);
|
||||
specular = doubleSided ? abs(specular) : max(0.0, specular);
|
||||
|
||||
// Apply BRDF scale terms (BRDF magnitude and Schlick Fresnel)
|
||||
float2 schlick = SceneSrg::m_ltcAmplification.Sample(PassSrg::LinearSampler, ltcCoords).xy;
|
||||
specular *= schlick.x + (1.0 - surface.specularF0) * schlick.y;
|
||||
float3 specularRGB = specular * (schlick.x + (1.0 - surface.specularF0) * schlick.y);
|
||||
|
||||
// Scale by inverse surface area of hemisphere (1/2pi), attenuation, and light intensity
|
||||
float3 intensity = 0.5 * INV_PI * radiusAttenuation * abs(light.m_rgbIntensityNits);
|
||||
|
||||
lightingData.diffuseLighting += surface.albedo * diffuse * intensity;
|
||||
lightingData.specularLighting += surface.specularF0 * specular * intensity;
|
||||
lightingData.specularLighting += surface.specularF0 * specularRGB * intensity;
|
||||
}
|
||||
|
||||
void ApplyPolygonLights(Surface surface, inout LightingData lightingData)
|
||||
|
||||
@@ -111,24 +111,22 @@ void ApplyQuadLight(ViewSrg::QuadLight light, Surface surface, inout LightingDat
|
||||
{
|
||||
float3 p[4] = {p0, p1, p2, p3};
|
||||
|
||||
// Diffuse
|
||||
float3x3 identityMatrix = float3x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0);
|
||||
float diffuse = LtcQuadEvaluate(surface.normal, lightingData.dirToCamera, identityMatrix, p, doubleSided);
|
||||
|
||||
// Specular
|
||||
float2 ltcCoords = LtcCoords(dot(surface.normal, lightingData.dirToCamera), surface.roughnessLinear);
|
||||
float3x3 ltcMat = LtcMatrix(SceneSrg::m_ltcMatrix, ltcCoords);
|
||||
float3 specular = LtcQuadEvaluate(surface.normal, lightingData.dirToCamera, ltcMat, p, doubleSided);
|
||||
|
||||
float diffuse = 0.0;
|
||||
float specular = 0.0;
|
||||
LtcQuadEvaluate(surface.normal, lightingData.dirToCamera, ltcMat, p, doubleSided, diffuse, specular);
|
||||
|
||||
// Apply BRDF scale terms (BRDF magnitude and Schlick Fresnel)
|
||||
float2 schlick = SceneSrg::m_ltcAmplification.Sample(PassSrg::LinearSampler, ltcCoords).xy;
|
||||
specular *= schlick.x + (1.0 - surface.specularF0) * schlick.y;
|
||||
float3 specularRGB = specular * (schlick.x + (1.0 - surface.specularF0) * schlick.y);
|
||||
|
||||
// Scale by inverse surface area of hemisphere (1/2pi), attenuation, and light intensity
|
||||
float3 intensity = 0.5 * INV_PI * radiusAttenuation * light.m_rgbIntensityNits;
|
||||
|
||||
lightingData.diffuseLighting += surface.albedo * diffuse * intensity;
|
||||
lightingData.specularLighting += surface.specularF0 * specular * intensity;
|
||||
lightingData.specularLighting += surface.specularF0 * specularRGB * intensity;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "Atom_Feature_Common",
|
||||
"display_name": "Atom Feature Common",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "Atom_RHI_DX12",
|
||||
"display_name": "Atom RHI DX12",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "Atom_RHI_Metal",
|
||||
"display_name": "Atom RHI Metal",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "Atom_RHI_Null",
|
||||
"display_name": "Atom RHI Null",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "Atom_RHI_Vulkan",
|
||||
"display_name": "Atom RHI Vulkan",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "Atom_RHI",
|
||||
"display_name": "Atom RHI",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@ ly_add_target(
|
||||
../Assets/atom_rpi_asset_files.cmake
|
||||
${pal_source_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
|
||||
${MASKED_OCCLUSION_CULLING_FILES}
|
||||
PLATFORM_INCLUDE_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common/${PAL_TRAIT_COMPILER_ID}/atom_rpi_public_${PAL_TRAIT_COMPILER_ID_LOWERCASE}.cmake
|
||||
INCLUDE_DIRECTORIES
|
||||
PRIVATE
|
||||
Source
|
||||
|
||||
@@ -65,9 +65,15 @@ namespace AZ
|
||||
ConstViewPtr GetDefaultView() const;
|
||||
|
||||
//! Gets the current size of the viewport.
|
||||
//! This value is cached and updated on-demand, so may be efficiently queried.
|
||||
AzFramework::WindowSize GetViewportSize() const;
|
||||
|
||||
// SceneNotificationBus interface
|
||||
//! Gets the screen DPI scaling factor.
|
||||
//! This value is cached and updated on-demand, so may be efficiently queried.
|
||||
//! \see AzFramework::WindowRequests::GetDpiScaleFactor
|
||||
float GetDpiScalingFactor() const;
|
||||
|
||||
// SceneNotificationBus interface overrides...
|
||||
//! Ensures our default view remains set when our scene's render pipelines are modified.
|
||||
void OnRenderPipelineAdded(RenderPipelinePtr pipeline) override;
|
||||
//! Ensures our default view remains set when our scene's render pipelines are modified.
|
||||
@@ -75,15 +81,22 @@ namespace AZ
|
||||
//! OnBeginPrepareRender is forwarded to our RenderTick notification to allow subscribers to do rendering.
|
||||
void OnBeginPrepareRender() override;
|
||||
|
||||
//WindowNotificationBus interface
|
||||
//! Used to fire a notification when our window resizes
|
||||
// WindowNotificationBus interface overrides...
|
||||
//! Used to fire a notification when our window resizes.
|
||||
void OnWindowResized(uint32_t width, uint32_t height) override;
|
||||
//! Used to fire a notification when our window DPI changes.
|
||||
void OnDpiScaleFactorChanged(float dpiScaleFactor) override;
|
||||
|
||||
using SizeChangedEvent = AZ::Event<AzFramework::WindowSize>;
|
||||
//! Notifies consumers when the viewport size has changed.
|
||||
//! Alternatively, connect to ViewportContextNotificationsBus and listen to ViewportContextNotifications::OnViewportSizeChanged.
|
||||
void ConnectSizeChangedHandler(SizeChangedEvent::Handler& handler);
|
||||
|
||||
using ScalarChangedEvent = AZ::Event<float>;
|
||||
//! Notifies consumers when the viewport DPI scaling ratio has changed.
|
||||
//! Alternatively, connect to ViewportContextNotificationsBus and listen to ViewportContextNotifications::OnViewportDpiScalingChanged.
|
||||
void ConnectDpiScalingFactorChangedHandler(ScalarChangedEvent::Handler& handler);
|
||||
|
||||
using MatrixChangedEvent = AZ::Event<const AZ::Matrix4x4&>;
|
||||
//! Notifies consumers when the view matrix has changed.
|
||||
void ConnectViewMatrixChangedHandler(MatrixChangedEvent::Handler& handler);
|
||||
@@ -106,7 +119,7 @@ namespace AZ
|
||||
//! Notifies consumers when this ViewportContext is about to be destroyed.
|
||||
void ConnectAboutToBeDestroyedHandler(ViewportIdEvent::Handler& handler);
|
||||
|
||||
// ViewportRequestBus interface
|
||||
// ViewportRequestBus interface overrides...
|
||||
//! Gets the current camera's view matrix.
|
||||
const AZ::Matrix4x4& GetCameraViewMatrix() const override;
|
||||
//! Sets the current camera's view matrix.
|
||||
@@ -130,8 +143,10 @@ namespace AZ
|
||||
WindowContextSharedPtr m_windowContext;
|
||||
ViewPtr m_defaultView;
|
||||
AzFramework::WindowSize m_viewportSize;
|
||||
float m_viewportDpiScaleFactor = 1.0f;
|
||||
|
||||
SizeChangedEvent m_sizeChangedEvent;
|
||||
ScalarChangedEvent m_dpiScalingFactorChangedEvent;
|
||||
MatrixChangedEvent m_viewMatrixChangedEvent;
|
||||
MatrixChangedEvent::Handler m_onViewMatrixChangedHandler;
|
||||
MatrixChangedEvent m_projectionMatrixChangedEvent;
|
||||
|
||||
@@ -105,8 +105,10 @@ namespace AZ
|
||||
class ViewportContextNotifications
|
||||
{
|
||||
public:
|
||||
//! Called when the underlying native window size changes for a given viewport context name.
|
||||
//! Called when the underlying native window size changes for a given viewport context.
|
||||
virtual void OnViewportSizeChanged(AzFramework::WindowSize size){AZ_UNUSED(size);}
|
||||
//! Called when the window DPI scaling changes for a given viewport context.
|
||||
virtual void OnViewportDpiScalingChanged(float dpiScale){AZ_UNUSED(dpiScale);}
|
||||
//! Called when the active view for a given viewport context name changes.
|
||||
virtual void OnViewportDefaultViewChanged(AZ::RPI::ViewPtr view){AZ_UNUSED(view);}
|
||||
//! Called when the viewport is to be rendered.
|
||||
|
||||
@@ -51,6 +51,7 @@ namespace AZ
|
||||
{
|
||||
AZStd::weak_ptr<ViewportContext> context;
|
||||
ViewportContext::SizeChangedEvent::Handler sizeChangedHandler;
|
||||
ViewportContext::ScalarChangedEvent::Handler dpiScalingChangedHandler;
|
||||
};
|
||||
|
||||
// ViewportContextManager is a singleton owned solely by RPISystem, which is tagged as a friend
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
#
|
||||
#
|
||||
|
||||
ly_add_source_properties(
|
||||
SOURCES External/MaskedOcclusionCulling/MaskedOcclusionCullingAVX2.cpp
|
||||
PROPERTY COMPILE_OPTIONS
|
||||
VALUES -mavx2 -mfma -msse4.1
|
||||
)
|
||||
|
||||
ly_add_source_properties(
|
||||
SOURCES External/MaskedOcclusionCulling/MaskedOcclusionCulling.cpp
|
||||
PROPERTY COMPILE_OPTIONS
|
||||
VALUES -mno-avx
|
||||
)
|
||||
@@ -0,0 +1,19 @@
|
||||
#
|
||||
# Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
#
|
||||
#
|
||||
|
||||
ly_add_source_properties(
|
||||
SOURCES External/MaskedOcclusionCulling/MaskedOcclusionCullingAVX2.cpp
|
||||
PROPERTY COMPILE_OPTIONS
|
||||
VALUES /arch:AVX2 /W3
|
||||
)
|
||||
ly_add_source_properties(
|
||||
SOURCES
|
||||
External/MaskedOcclusionCulling/MaskedOcclusionCullingAVX512.cpp
|
||||
External/MaskedOcclusionCulling/MaskedOcclusionCulling.cpp
|
||||
PROPERTY COMPILE_OPTIONS
|
||||
VALUES /W3
|
||||
)
|
||||
@@ -7,16 +7,3 @@
|
||||
|
||||
set (PAL_TRAIT_BUILD_ATOM_RPI_ASSETS_SUPPORTED TRUE)
|
||||
set (PAL_TRAIT_BUILD_ATOM_RPI_MASKED_OCCLUSION_CULLING_SUPPORTED TRUE)
|
||||
|
||||
ly_add_source_properties(
|
||||
SOURCES External/MaskedOcclusionCulling/MaskedOcclusionCullingAVX2.cpp
|
||||
PROPERTY COMPILE_OPTIONS
|
||||
VALUES /arch:AVX2 /W3
|
||||
)
|
||||
ly_add_source_properties(
|
||||
SOURCES
|
||||
External/MaskedOcclusionCulling/MaskedOcclusionCullingAVX512.cpp
|
||||
External/MaskedOcclusionCulling/MaskedOcclusionCulling.cpp
|
||||
PROPERTY COMPILE_OPTIONS
|
||||
VALUES /W3
|
||||
)
|
||||
@@ -28,6 +28,10 @@ namespace AZ
|
||||
m_viewportSize,
|
||||
nativeWindow,
|
||||
&AzFramework::WindowRequestBus::Events::GetClientAreaSize);
|
||||
AzFramework::WindowRequestBus::EventResult(
|
||||
m_viewportDpiScaleFactor,
|
||||
nativeWindow,
|
||||
&AzFramework::WindowRequestBus::Events::GetDpiScaleFactor);
|
||||
AzFramework::WindowNotificationBus::Handler::BusConnect(nativeWindow);
|
||||
AzFramework::ViewportRequestBus::Handler::BusConnect(id);
|
||||
|
||||
@@ -148,11 +152,21 @@ namespace AZ
|
||||
return m_viewportSize;
|
||||
}
|
||||
|
||||
float ViewportContext::GetDpiScalingFactor() const
|
||||
{
|
||||
return m_viewportDpiScaleFactor;
|
||||
}
|
||||
|
||||
void ViewportContext::ConnectSizeChangedHandler(SizeChangedEvent::Handler& handler)
|
||||
{
|
||||
handler.Connect(m_sizeChangedEvent);
|
||||
}
|
||||
|
||||
void ViewportContext::ConnectDpiScalingFactorChangedHandler(ScalarChangedEvent::Handler& handler)
|
||||
{
|
||||
handler.Connect(m_dpiScalingFactorChangedEvent);
|
||||
}
|
||||
|
||||
void ViewportContext::ConnectViewMatrixChangedHandler(MatrixChangedEvent::Handler& handler)
|
||||
{
|
||||
handler.Connect(m_viewMatrixChangedEvent);
|
||||
@@ -289,5 +303,11 @@ namespace AZ
|
||||
m_sizeChangedEvent.Signal(m_viewportSize);
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportContext::OnDpiScaleFactorChanged(float dpiScaleFactor)
|
||||
{
|
||||
m_viewportDpiScaleFactor = dpiScaleFactor;
|
||||
m_dpiScalingFactorChangedEvent.Signal(dpiScaleFactor);
|
||||
}
|
||||
} // namespace RPI
|
||||
} // namespace AZ
|
||||
|
||||
@@ -55,16 +55,28 @@ namespace AZ
|
||||
auto onSizeChanged = [this, viewportId](AzFramework::WindowSize size)
|
||||
{
|
||||
// Ensure we emit OnViewportSizeChanged with the correct name.
|
||||
auto viewportContext = this->GetViewportContextById(viewportId);
|
||||
auto viewportContext = GetViewportContextById(viewportId);
|
||||
if (viewportContext)
|
||||
{
|
||||
ViewportContextNotificationBus::Event(viewportContext->GetName(), &ViewportContextNotificationBus::Events::OnViewportSizeChanged, size);
|
||||
}
|
||||
ViewportContextIdNotificationBus::Event(viewportId, &ViewportContextIdNotificationBus::Events::OnViewportSizeChanged, size);
|
||||
};
|
||||
auto onDpiScalingChanged = [this, viewportId](float dpiScalingFactor)
|
||||
{
|
||||
// Ensure we emit OnViewportDpiScalingChanged with the correct name.
|
||||
auto viewportContext = GetViewportContextById(viewportId);
|
||||
if (viewportContext)
|
||||
{
|
||||
ViewportContextNotificationBus::Event(viewportContext->GetName(), &ViewportContextNotificationBus::Events::OnViewportDpiScalingChanged, dpiScalingFactor);
|
||||
}
|
||||
ViewportContextIdNotificationBus::Event(viewportId, &ViewportContextIdNotificationBus::Events::OnViewportDpiScalingChanged, dpiScalingFactor);
|
||||
};
|
||||
viewportContext->m_name = contextName;
|
||||
viewportData.sizeChangedHandler = ViewportContext::SizeChangedEvent::Handler(onSizeChanged);
|
||||
viewportData.dpiScalingChangedHandler = ViewportContext::ScalarChangedEvent::Handler(onDpiScalingChanged);
|
||||
viewportContext->ConnectSizeChangedHandler(viewportData.sizeChangedHandler);
|
||||
viewportContext->ConnectDpiScalingFactorChangedHandler(viewportData.dpiScalingChangedHandler);
|
||||
ViewPtrStack& associatedViews = GetOrCreateViewStackForContext(contextName);
|
||||
viewportContext->SetDefaultView(associatedViews.back());
|
||||
onSizeChanged(viewportContext->GetViewportSize());
|
||||
@@ -176,6 +188,7 @@ namespace AZ
|
||||
UpdateViewForContext(newContextName);
|
||||
// Ensure anyone listening on per-name viewport size updates gets notified.
|
||||
ViewportContextNotificationBus::Event(newContextName, &ViewportContextNotificationBus::Events::OnViewportSizeChanged, viewportContext->GetViewportSize());
|
||||
ViewportContextNotificationBus::Event(newContextName, &ViewportContextNotificationBus::Events::OnViewportDpiScalingChanged, viewportContext->GetDpiScalingFactor());
|
||||
}
|
||||
|
||||
void ViewportContextManager::EnumerateViewportContexts(AZStd::function<void(ViewportContextPtr)> visitorFunction)
|
||||
|
||||
@@ -2,9 +2,13 @@
|
||||
"gem_name": "Atom_RPI",
|
||||
"display_name": "Atom API",
|
||||
"summary": "",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+1
@@ -113,6 +113,7 @@ namespace AtomToolsFramework
|
||||
void SetFullScreenState(bool fullScreenState) override;
|
||||
bool CanToggleFullScreenState() const override;
|
||||
void ToggleFullScreenState() override;
|
||||
float GetDpiScaleFactor() const override;
|
||||
|
||||
protected:
|
||||
// AzFramework::InputChannelEventListener ...
|
||||
|
||||
@@ -540,4 +540,9 @@ namespace AtomToolsFramework
|
||||
{
|
||||
// The RenderViewportWidget does not currently support full screen.
|
||||
}
|
||||
|
||||
float RenderViewportWidget::GetDpiScaleFactor() const
|
||||
{
|
||||
return aznumeric_cast<float>(devicePixelRatioF());
|
||||
}
|
||||
} //namespace AtomToolsFramework
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "AtomToolsFramework",
|
||||
"display_name": "Atom Tools Framework",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "MaterialEditor",
|
||||
"display_name": "Atom Material Editor",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "Editor for creating, modifying, and previewing materials",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+9
-2
@@ -1,5 +1,12 @@
|
||||
{
|
||||
"gem_name": "Atom",
|
||||
"display_name": "Atom",
|
||||
"summary": "Next-Gen Rendering Package for the O3DE engine"
|
||||
"display_name": "Atom Renderer",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Atom Renderer Gem provides Atom Renderer and its associated tools (such as Material Editor), utilites, libraries, and interfaces.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Core"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"gem_name": "ReferenceMaterials",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "99eac95298d847a6914d7b9e69db6f84",
|
||||
"Name": "ReferenceMaterials",
|
||||
"DisplayName": "ReferenceMaterials",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "NoCode",
|
||||
"Summary": "Atom Asset Gem with a library of reference materials for StandardPBR (and others in the future)",
|
||||
"Tags": ["Asset"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "ReferenceMaterials",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Asset",
|
||||
"summary": "Atom Asset Gem with a library of reference materials for StandardPBR (and others in the future)",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"gem_name": "Sponza",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "860d8ef2aec5425ab197adc4484c09f1",
|
||||
"Name": "Sponza",
|
||||
"DisplayName": "Sponza",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "NoCode",
|
||||
"Summary": "A standard test scene for Global Illumination (forked from crytek sponza scene)",
|
||||
"Tags": ["Asset"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "Sponza",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Asset",
|
||||
"summary": "A standard test scene for Global Illumination (forked from crytek sponza scene)",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
{
|
||||
"gem_name": "AtomContent",
|
||||
"origin": "The primary repo for Atom goes here: i.e. http://www.mydomain.com",
|
||||
"license": "What license Atom uses goes here: i.e. https://opensource.org/licenses/MIT",
|
||||
"display_name": "Atom Content",
|
||||
"summary": "ontains multiple packages containing source Assets that can be used with Atom",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
"AtomContent"
|
||||
],
|
||||
"icon_path": "preview.png"
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Asset",
|
||||
"summary": "The Atom Content Gem provides assets for Atom Renderer and a modified version of the Pixar Look Development Studio (https://renderman.pixar.com/look-development-studio).",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Assets", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "Atom_AtomBridge",
|
||||
"display_name": "Atom Bridge",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "AtomFont",
|
||||
"display_name": "Atom Font",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
{
|
||||
"gem_name": "AtomImGuiTools",
|
||||
"display_name": "Atom ImGui",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
"Debug",
|
||||
"Rendering"
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "AtomViewportDisplayIcons",
|
||||
"display_name": "Atom Viewport Display Icons",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+2
-2
@@ -155,9 +155,9 @@ namespace AZ::Render
|
||||
|
||||
m_drawParams.m_drawViewportId = viewportContext->GetId();
|
||||
auto viewportSize = viewportContext->GetViewportSize();
|
||||
m_drawParams.m_position = AZ::Vector3(viewportSize.m_width, 0.0f, 1.0f) + AZ::Vector3(r_topRightBorderPadding);
|
||||
m_drawParams.m_position = AZ::Vector3(viewportSize.m_width, 0.0f, 1.0f) + AZ::Vector3(r_topRightBorderPadding) * viewportContext->GetDpiScalingFactor();
|
||||
m_drawParams.m_color = AZ::Colors::White;
|
||||
m_drawParams.m_scale = AZ::Vector2(0.7f);
|
||||
m_drawParams.m_scale = AZ::Vector2(BaseFontSize * viewportContext->GetDpiScalingFactor());
|
||||
m_drawParams.m_hAlign = AzFramework::TextHorizontalAlignment::Right;
|
||||
m_drawParams.m_monospace = false;
|
||||
m_drawParams.m_depthTest = false;
|
||||
|
||||
+2
@@ -60,6 +60,8 @@ namespace AZ
|
||||
void DrawPassInfo();
|
||||
void DrawFramerate();
|
||||
|
||||
static constexpr float BaseFontSize = 0.7f;
|
||||
|
||||
AZStd::string m_rendererDescription;
|
||||
AzFramework::TextDrawParameters m_drawParams;
|
||||
AzFramework::FontDrawInterface* m_fontDrawInterface = nullptr;
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "AtomViewportDisplayInfo",
|
||||
"display_name": "Atom Viewport Display Info",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "CommonFeaturesAtom",
|
||||
"display_name": "Common Features Atom",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "EMotionFX_Atom",
|
||||
"display_name": "EMotionFX Atom",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -50,7 +50,8 @@ namespace AZ
|
||||
{
|
||||
ImGui::OtherActiveImGuiRequestBus::Handler::BusConnect();
|
||||
|
||||
auto atomViewportRequests = AZ::Interface<AZ::RPI::ViewportContextRequestsInterface>::Get();
|
||||
auto atomViewportRequests = AZ::RPI::ViewportContextRequests::Get();
|
||||
AZ_Assert(atomViewportRequests, "AtomViewportContextRequests interface not found!");
|
||||
const AZ::Name contextName = atomViewportRequests->GetDefaultViewportContextName();
|
||||
AZ::RPI::ViewportContextNotificationBus::Handler::BusConnect(contextName);
|
||||
|
||||
@@ -105,10 +106,20 @@ namespace AZ
|
||||
// Let our ImguiAtomSystemComponent know once we successfully connect and update the viewport size.
|
||||
if (!m_initialized)
|
||||
{
|
||||
auto atomViewportRequests = AZ::RPI::ViewportContextRequests::Get();
|
||||
auto defaultViewportContext = atomViewportRequests->GetDefaultViewportContext();
|
||||
OnViewportDpiScalingChanged(defaultViewportContext->GetDpiScalingFactor());
|
||||
m_initialized = true;
|
||||
}
|
||||
});
|
||||
#endif
|
||||
#endif //define(IMGUI_ENABLED)
|
||||
}
|
||||
|
||||
void ImguiAtomSystemComponent::OnViewportDpiScalingChanged(float dpiScale)
|
||||
{
|
||||
#if defined(IMGUI_ENABLED)
|
||||
ImGui::ImGuiManagerBus::Broadcast(&ImGui::ImGuiManagerBus::Events::SetDpiScalingFactor, dpiScale);
|
||||
#endif //define(IMGUI_ENABLED)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ namespace AZ
|
||||
// ViewportContextNotificationBus overrides...
|
||||
void OnRenderTick() override;
|
||||
void OnViewportSizeChanged(AzFramework::WindowSize size) override;
|
||||
void OnViewportDpiScalingChanged(float dpiScale) override;
|
||||
|
||||
DebugConsole m_debugConsole;
|
||||
bool m_initialized = false;
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
{
|
||||
"gem_name": "ImguiAtom",
|
||||
"display_name": "Imgui Atom",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
"user_tags": [
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
"gem_name": "DccScriptingInterface",
|
||||
"display_name": "Atom DccScriptingInterface (DCCsi)",
|
||||
"summary": "A python framework for working with various DCC tools and workflows.",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"canonical_tags": [
|
||||
"Gem"
|
||||
],
|
||||
@@ -10,5 +13,6 @@
|
||||
"Digital",
|
||||
"Content",
|
||||
"Creation"
|
||||
]
|
||||
],
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
{
|
||||
"gem_name": "AtomLyIntegration",
|
||||
"display_name": "Atom O3DE Integration",
|
||||
"summary": "Collection of module targets for integrating Atom with the O3DE engine"
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Atom O3DE Integration Gem provides components, libraries, and functionality to support and integrate Atom Renderer in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Core", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
{
|
||||
"gem_name": "AtomTressFX",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "d4a3e3d6b9b14e12982c774f35f48a7c",
|
||||
"Name": "AtomTressFX",
|
||||
"DisplayName": "AtomTressFX [PREVIEW]",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "The AtomTressFX is a cutting edge hair technology based on TressFX 4.1 SDK from AMD. It was altered to integrate into Atom harnessing Atom's design and pipeline.",
|
||||
"Tags": ["Hair", "TressFX"],
|
||||
"IconPath": "preview.png",
|
||||
"EditorModule": true
|
||||
"display_name": "Atom TressFX",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Atom TressFX Gem provides realistic hair and fur simulation and rendering in Atom and Open 3D Engine with AMD TressFX.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Physics", "Animation"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,28 +1,12 @@
|
||||
{
|
||||
"gem_name": "AudioEngineWwise",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "67a80e2ac865406c990f2715feb55f7f",
|
||||
"Name": "AudioEngineWwise",
|
||||
"DisplayName": "Wwise Audio Integration",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Wwise engine integration and plugin to Audio Controls Editor.",
|
||||
"Tags": ["Audio", "Sound", "Wwise"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
},
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule",
|
||||
"Extends": "GameModule"
|
||||
}
|
||||
],
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "6f63f2b6d07f4b89b4b7c86ebee7feb8",
|
||||
"VersionConstraints": [">=0.1.0"],
|
||||
"_comment": "AudioSystem"
|
||||
}
|
||||
]
|
||||
"display_name": "Wwise Audio Engine",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Wwise Audio Engine Gem provides support for Audiokinetic Wave Works Interactive Sound Engine (Wwise).",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Audio", "Utiltity", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": "Users will need to download WWise from the AudioKinetic web site: https://www.audiokinetic.com/download/"
|
||||
}
|
||||
|
||||
@@ -1,21 +1,12 @@
|
||||
{
|
||||
"gem_name": "AudioSystem",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "6f63f2b6d07f4b89b4b7c86ebee7feb8",
|
||||
"Name": "AudioSystem",
|
||||
"DisplayName": "Audio System",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Contains CrySoundSystem, the Audio Translation Layer (ATL), and the Audio Controls Editor",
|
||||
"Tags": ["Audio", "Sound"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
},
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule",
|
||||
"Extends": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Audio System",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Audio System Gem provides the Audio Translation Layer (ATL) and Audio Controls Editor, which add support for audio in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Audio", "Utiltity", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
{
|
||||
"gem_name": "AutomatedLauncherTesting",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "69504dac61f84a11bf895b8f05e4227f",
|
||||
"Name": "AutomatedLauncherTesting",
|
||||
"DisplayName": "Automated Launcher Testing",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "This GEM is used to manage running of Automated Launcher Tests",
|
||||
"Tags": ["Untagged"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Automated Launcher Testing",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Automated Launcher Testing Gem manages automated Open 3D Engine (O3DE) launcher tests.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+9
-34
@@ -1,37 +1,12 @@
|
||||
{
|
||||
"gem_name": "Blast",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "414bd211c99d4f74aef3a266b9ca208c",
|
||||
"Name": "Blast",
|
||||
"DisplayName": "NVIDIA Blast [Experimental]",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Enables support for NVIDIA Blast objects in Lumberyard for high-fidelity destruction.",
|
||||
"Tags": [ "Physics" ],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
},
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule",
|
||||
"Extends": "GameModule"
|
||||
}
|
||||
],
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "ff06785f7145416b9d46fde39098cb0c",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "LmbrCentral"
|
||||
},
|
||||
{
|
||||
"Uuid": "4e08125824434932a0fe3717259caa47",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "PhysX"
|
||||
}
|
||||
]
|
||||
"display_name": "NVIDIA Blast",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The NVIDIA Blast Gem provides tools to author fractured mesh assets in Houdini, and functionality to create realistic destruction simulations in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Physics", "Simulation", "Animation"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+9
-18
@@ -1,21 +1,12 @@
|
||||
{
|
||||
"gem_name": "Camera",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "f910686b6725452fbfc4671f95f733c6",
|
||||
"Name": "Camera",
|
||||
"Version": "0.1.0",
|
||||
"DisplayName": "Camera",
|
||||
"Tags": ["Camera"],
|
||||
"Summary": "The Camera Gem includes a basic camera component that defines a frustum for runtime rendering.",
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
},
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule",
|
||||
"Extends": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Camera",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Camera Gem provides a basic camera component that defines a frustum for runtime rendering.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,21 +1,12 @@
|
||||
{
|
||||
"gem_name": "CameraFramework",
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "f910686b6725452fbfc4671f95f733c6",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "Camera"
|
||||
}
|
||||
],
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "54f2763fe191432fa681ce4a354eedf5",
|
||||
"Name": "CameraFramework",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"DisplayName": "Camera Framework [PREVIEW]",
|
||||
"Tags": ["Camera", "Framework"],
|
||||
"Summary": "The Camera Framework Gem includes the camera rig component which drives an entity through camera behaviors. Behaviors are provided in the Starting Point Camera Gem.",
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "Camera Framework",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Camera Framework Gem provides a base for implementing more complex camera systems.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Framework", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"gem_name": "CertificateManager",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "659CFFFF33B14A10835BAFC6EA623F98",
|
||||
"Name": "CertificateManager",
|
||||
"DisplayName": "Amazon Certificate Manager",
|
||||
"Version": "0.0.1",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "The Amazon Certificate Manager Gem provides access to authentication files for secure game connections from S3, files on disk, and other 3rd party sources",
|
||||
"Tags": ["Amazon Certificate Manager","Security","Multiplayer","Networking"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "Certificate Manager",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Certificate Manager Gem provides access to authentication files for secure game connections from Amazon S3, files on disk, and other 3rd party sources.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Network", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,21 +1,12 @@
|
||||
{
|
||||
"gem_name": "CrashReporting",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "089562a2cbbd41749b359f85fa04f1c9",
|
||||
"Name": "CrashReporting",
|
||||
"DisplayName": "CrashReporting",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Enable external crash reporting for a game project",
|
||||
"Tags": ["Untagged"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "StaticLib",
|
||||
"Name": "StaticLibrary"
|
||||
},
|
||||
{
|
||||
"Type": "Standalone",
|
||||
"Name": "Uploader"
|
||||
}
|
||||
]
|
||||
"display_name": "Crash Reporting",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Crash Reporting Gem provides support for external crash reporting for Open 3D Engine projects.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,19 +1,12 @@
|
||||
{
|
||||
"gem_name": "CustomAssetExample",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "ad082dd50c6545849729e9afeaaeaa1d",
|
||||
"Name": "CustomAssetExample",
|
||||
"DisplayName": "CustomAssetExample",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Contians example code for creating a custom asset in Lumberyard's asset pipeline",
|
||||
"Tags": ["Assets, Example"],
|
||||
"LinkType": "Dynamic",
|
||||
"IconPath": "preview.png",
|
||||
"EditorModule": true,
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Custom Asset Example",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Custom Asset Example Gem provides example code for creating a custom asset for Open 3D Engine's asset pipeline.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+9
-10
@@ -1,13 +1,12 @@
|
||||
{
|
||||
"gem_name": "DebugDraw",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "66239f50bf754354b514c850c8b841fb",
|
||||
"Name": "DebugDraw",
|
||||
"DisplayName": "DebugDraw [PREVIEW]",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "The DebugDraw Gem provides editor and game runtime debug visualization features.",
|
||||
"Tags": ["Debugging"],
|
||||
"IconPath": "preview.png",
|
||||
"EditorModule": true
|
||||
"display_name": "Debug Draw",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Debug Draw Gem provides Editor and runtime debug visualization features for Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "Tools", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"gem_name": "DevTextures",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "2c227161447b4d77a5b07c093e214fe3",
|
||||
"Name": "DevTextures",
|
||||
"DisplayName": "DevTextures",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "NoCode",
|
||||
"Summary": "Collection of general purpose textures useful for prototypes and preproduction. ",
|
||||
"Tags": ["Asset"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "Dev Textures",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Asset",
|
||||
"summary": "The Dev Textures Gem provides a collection of general purpose texture assets useful for prototypes and preproduction.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Debug", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace EMotionFX::Pipeline::Rule
|
||||
AZStd::unique_ptr<EMotionFX::MotionEventTable> m_motionEventTable;
|
||||
};
|
||||
|
||||
class MotionMetaDataRule
|
||||
class MotionMetaDataRule final
|
||||
: public ExternalToolRule<AZStd::shared_ptr<MotionMetaData>>
|
||||
{
|
||||
public:
|
||||
@@ -46,7 +46,7 @@ namespace EMotionFX::Pipeline::Rule
|
||||
|
||||
MotionMetaDataRule();
|
||||
MotionMetaDataRule(const AZStd::shared_ptr<MotionMetaData>& data);
|
||||
~MotionMetaDataRule() final = default;
|
||||
~MotionMetaDataRule() = default;
|
||||
|
||||
const AZStd::shared_ptr<MotionMetaData>& GetData() const override { return m_data; }
|
||||
void SetData(const AZStd::shared_ptr<MotionMetaData>& data) override { m_data = data; }
|
||||
|
||||
+9
-20
@@ -1,23 +1,12 @@
|
||||
{
|
||||
"gem_name": "EMotionFX",
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "ff06785f7145416b9d46fde39098cb0c",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "LmbrCentral"
|
||||
}
|
||||
],
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "044a63ea67d04479aa5daf62ded9d9ca",
|
||||
"Name": "EMotionFX",
|
||||
"DisplayName": "EMotion FX Animation",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "EMotion FX is a character animation system used to set up animated controllable characters inside your project.\n",
|
||||
"Tags": ["Animation"],
|
||||
"IconPath": "EMotionFX.png",
|
||||
"EditorModule" : true,
|
||||
"DisableGemAutoUselib": true
|
||||
"display_name": "EMotion FX Animation",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The EMotion FX Animation Gem provides Open 3D Engine's animation system for rigged actors and includes Animation Editor, a tool for creating animated behaviors, simulated objects, and colliders for rigged actors.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Animation", "Tools", "Simulation"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,17 +1,12 @@
|
||||
{
|
||||
"gem_name": "EditorPythonBindings",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "b658359393884c4381c2fe2952b1472a",
|
||||
"Name": "EditorPythonBindings",
|
||||
"DisplayName": "EditorPythonBindings",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "A gem to bind Editor commands via Python scripts.",
|
||||
"Tags": ["Editor", "Assets", "Asset Pipeline", "Python"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule"
|
||||
}
|
||||
]
|
||||
"gem_name": "EditorPythonBindings",
|
||||
"display_name": "Editor Python Bindings",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The Editor Python Bindings Gem provides Python commands for Open 3D Engine Editor functions.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
{
|
||||
"gem_name": "ExpressionEvaluation",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "4c6f9df57ca2468f93c8d860ee6a1167",
|
||||
"Name": "ExpressionEvaluation",
|
||||
"DisplayName": "Expression Evaluation",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Provides a method for parsing and executing various string expressions(e.g. 1+1 or 2>3).",
|
||||
"Tags": ["Untagged"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Expression Evaluation",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Expression Evaluation Gem provides a method for parsing and executing string expressions in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Utiltity"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+9
-34
@@ -1,37 +1,12 @@
|
||||
{
|
||||
"gem_name": "FastNoise",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "c5f23032407f49ca8d8de1733423565c",
|
||||
"Name": "FastNoise",
|
||||
"DisplayName": "Fast Noise Gradient [PREVIEW]",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "A Lumberyard Gem that provides a Gradient Signal component for FastNoise. FastNoise is a realtime noise generation library with a large collection of different noise algorithms.",
|
||||
"Tags": ["Gradient"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
},
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule",
|
||||
"Extends": "GameModule"
|
||||
}
|
||||
],
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "8825563d9d964ec3be3bab681f3bd9f2",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "GradientSignal"
|
||||
},
|
||||
{
|
||||
"Uuid": "5de82d29d6094bfe97c1a4d35fcd5fbe",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "SurfaceData"
|
||||
}
|
||||
]
|
||||
"display_name": "Fast Noise",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The FastNoise Gradient Gem uses the third-party, open source FastNoise library to provide a variety of high-performance noise generation algorithms.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Utility", "Tools", "Design"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+9
-13
@@ -1,16 +1,12 @@
|
||||
{
|
||||
"gem_name": "GameState",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "1a557ac19dc34f5697fe03f30be5b6e4",
|
||||
"Name": "GameState",
|
||||
"DisplayName": "GameState",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Provides a generic framework for managing game states and the transitions between them. Some sample game states are provided in the GameStateSamples Gem.",
|
||||
"Tags": ["Game State"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Game State",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Game State Gem provides a generic framework to determine and manage game states and game state transitions in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Framework", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,49 +1,12 @@
|
||||
{
|
||||
"gem_name": "GameStateSamples",
|
||||
"Dependencies":
|
||||
[
|
||||
{
|
||||
"Uuid" : "1a557ac19dc34f5697fe03f30be5b6e4",
|
||||
"VersionConstraints" : [">=0.1.0"],
|
||||
"_comment" : "GameState"
|
||||
},
|
||||
{
|
||||
"Uuid" : "ff06785f7145416b9d46fde39098cb0c",
|
||||
"VersionConstraints" : [">=0.1.0"],
|
||||
"_comment" : "LmbrCentral"
|
||||
},
|
||||
{
|
||||
"Uuid" : "93ccb44a96b142f7942a3fb6b9ca36e1",
|
||||
"VersionConstraints" : [">=0.1.0"],
|
||||
"_comment" : "LocalUser"
|
||||
},
|
||||
{
|
||||
"Uuid" : "c7935ecf5e8047fe8ca947b34b11cadb",
|
||||
"VersionConstraints" : [">=0.1.0"],
|
||||
"_comment" : "LyShineExamples"
|
||||
},
|
||||
{
|
||||
"Uuid" : "89225422672547deaca9e7a22b883973",
|
||||
"VersionConstraints" : [">=0.1.0"],
|
||||
"_comment" : "MessagePopup"
|
||||
},
|
||||
{
|
||||
"Uuid" : "d96ab03f53d14c9e83f9b4528c8576d7",
|
||||
"VersionConstraints" : [">=0.1.0"],
|
||||
"_comment" : "SaveData"
|
||||
}
|
||||
],
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "76db0b1bcff84224a92cbceb373f4a85",
|
||||
"Name": "GameStateSamples",
|
||||
"DisplayName": "GameStateSamples",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Provides a set of sample game states (built on top of the generic GameState Gem), including primary user selection, main menu, level loading, level running, and level paused.",
|
||||
"Tags": ["Game State", "Main Menu", "Level Loading", "Pause Menu", "Primary User", "Local Multiplayer", "Local Co-op", "Split Screen"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Game State Samples",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Game State Samples Gem provides a set of sample game states (built on top of the Game State Gem), including primary user selection, main menu, level loading, level running, and level paused.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Samples", "Assets"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
{
|
||||
"gem_name": "Gestures",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "6056556b6088413984309c4a413593ad",
|
||||
"Name": "Gestures",
|
||||
"Version": "1.0.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "Gesture-based input, including click/tap, drag, hold, pinch, rotate, and swipe.",
|
||||
"IconPath": "preview.png",
|
||||
"Tags": ["Input", "Gestures"]
|
||||
"display_name": "Gestures",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Gestures Gem provides detection for common gesture-based input actions on iOS and Android devices.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Input", "Gameplay", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,37 +1,12 @@
|
||||
{
|
||||
"gem_name": "GradientSignal",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "8825563d9d964ec3be3bab681f3bd9f2",
|
||||
"Name": "GradientSignal",
|
||||
"DisplayName": "Gradient Signal [PREVIEW]",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "A Lumberyard Gem that provides a number of components for generating (ex: Random, Perlin), modifying (ex: Levels, Threshold), and mixing gradient signals.",
|
||||
"Tags": ["Gradient", "Surface"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
},
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule",
|
||||
"Extends": "GameModule"
|
||||
}
|
||||
],
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "ff06785f7145416b9d46fde39098cb0c",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "LmbrCentral"
|
||||
},
|
||||
{
|
||||
"Uuid": "5de82d29d6094bfe97c1a4d35fcd5fbe",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "SurfaceData"
|
||||
}
|
||||
]
|
||||
"display_name": "Gradient Signal",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Gradient Signal Gem provides a number of components for generating, modifying, and mixing gradient signals.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Utility", "Tools", "Design"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
{
|
||||
"gem_name": "GraphCanvas",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "875b6fcbdeea44deaae7984ad9bb6cdc",
|
||||
"Name": "GraphCanvas",
|
||||
"DisplayName": "GraphCanvas",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "The Graph Canvas Gem includes a C++ framework for creating custom graphical node based editors.",
|
||||
"Tags": ["GraphCanvas"],
|
||||
"IconPath": "preview.png",
|
||||
"EditorModule" : true
|
||||
"display_name": "Graph Canvas",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The Graph Canvas Gem provides a C++ framework for creating custom graphical node based editors for Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Framework", "Tools", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,26 +1,12 @@
|
||||
{
|
||||
"gem_name": "GraphModel",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "0844f64a3acf4f5abf3a535dc9b63bc9",
|
||||
"Name": "GraphModel",
|
||||
"DisplayName": "GraphModel",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "A generic node graph data model framework.",
|
||||
"Tags": ["GraphModel", "Scripting", "Vegetation"],
|
||||
"IconPath": "graphModelIcon.svg",
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule"
|
||||
}
|
||||
],
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "875b6fcbdeea44deaae7984ad9bb6cdc",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "GraphCanvas"
|
||||
}
|
||||
]
|
||||
"display_name": "Graph Model",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Graph Model Gem provides a generic node graph data model framework for Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Framework", "Tools", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"gem_name": "HttpRequestor",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "28479e255bde466e91fc34eec808d9c7",
|
||||
"Name": "HttpRequestor",
|
||||
"DisplayName": "HttpRequestor",
|
||||
"Version": "1.0.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "A Gem to handle HTTP/HTTPs requests.",
|
||||
"Tags": ["http", "https", "rest"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "HTTP Requestor",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The HTTP Requestor Gem provides functionality to make asynchronous HTTP/HTTPS requests and return data through a user-provided call back function.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Network", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -86,6 +86,8 @@ namespace ImGui
|
||||
virtual void SetImGuiRenderResolution(const ImVec2& res) = 0;
|
||||
virtual void OverrideRenderWindowSize(uint32_t width, uint32_t height) = 0;
|
||||
virtual void RestoreRenderWindowSizeToDefault() = 0;
|
||||
virtual void SetDpiScalingFactor(float dpiScalingFactor) = 0;
|
||||
virtual float GetDpiScalingFactor() const = 0;
|
||||
virtual void Render() = 0;
|
||||
};
|
||||
|
||||
|
||||
@@ -277,6 +277,20 @@ void ImGui::ImGuiManager::RestoreRenderWindowSizeToDefault()
|
||||
InitWindowSize();
|
||||
}
|
||||
|
||||
void ImGui::ImGuiManager::SetDpiScalingFactor(float dpiScalingFactor)
|
||||
{
|
||||
ImGuiIO& io = ImGui::GetIO();
|
||||
// Set the global font scale to size our UI to the scaling factor
|
||||
// Note: Currently we use the default, 13px fixed-size IMGUI font, so this can get somewhat blurry
|
||||
io.FontGlobalScale = dpiScalingFactor;
|
||||
}
|
||||
|
||||
float ImGui::ImGuiManager::GetDpiScalingFactor() const
|
||||
{
|
||||
ImGuiIO& io = ImGui::GetIO();
|
||||
return io.FontGlobalScale;
|
||||
}
|
||||
|
||||
void ImGuiManager::Render()
|
||||
{
|
||||
if (m_clientMenuBarState == DisplayState::Hidden && m_editorWindowState == DisplayState::Hidden)
|
||||
|
||||
@@ -57,6 +57,8 @@ namespace ImGui
|
||||
void SetImGuiRenderResolution(const ImVec2& res) override { m_renderResolution = res; }
|
||||
void OverrideRenderWindowSize(uint32_t width, uint32_t height) override;
|
||||
void RestoreRenderWindowSizeToDefault() override;
|
||||
void SetDpiScalingFactor(float dpiScalingFactor) override;
|
||||
float GetDpiScalingFactor() const override;
|
||||
void Render() override;
|
||||
// -- ImGuiManagerBus Interface -------------------------------------------------------------------
|
||||
|
||||
@@ -82,7 +84,7 @@ namespace ImGui
|
||||
DisplayState m_editorWindowState = DisplayState::Hidden;
|
||||
|
||||
// ImGui Resolution Settings
|
||||
ImGuiResolutionMode m_resolutionMode = ImGuiResolutionMode::MatchToMaxRenderResolution;
|
||||
ImGuiResolutionMode m_resolutionMode = ImGuiResolutionMode::MatchRenderResolution;
|
||||
ImVec2 m_renderResolution = ImVec2(1920.0f, 1080.0f);
|
||||
ImVec2 m_lastRenderResolution;
|
||||
AzFramework::WindowSize m_windowSize = AzFramework::WindowSize(1920, 1080);
|
||||
|
||||
+9
-27
@@ -1,30 +1,12 @@
|
||||
{
|
||||
"gem_name": "ImGui",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "bab8807a1bc646b3909f3cc200ffeedf",
|
||||
"Name": "ImGui",
|
||||
"DisplayName": "ImGui",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "A GEM that houses 3rdParty lib IMGUI. Great for quick programmer art GUI fit for debug type menus.",
|
||||
"Tags": ["Debug"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
},
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule",
|
||||
"Extends": "GameModule"
|
||||
}
|
||||
],
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "ff06785f7145416b9d46fde39098cb0c",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "LmbrCentral"
|
||||
}
|
||||
]
|
||||
"display_name": "Immediate Mode GUI (IMGUI)",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The Immediate Mode GUI Gem provides the 3rdParty library IMGUI which can be used to create run time immediate mode overlays for debugging and profiling information in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "Rendering", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"gem_name": "InAppPurchases",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "92fe57eae7d3402a90761973678c079a",
|
||||
"Name": "InAppPurchases",
|
||||
"DisplayName": "In-App Purchases",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "Provides the in-app purchasing API for iOS and Android",
|
||||
"Tags": ["InAppPurchases", "iOS", "Android"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "In-App Purchases",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The In-App Purchases Gem provides functionality for in app purchases for iOS and Android.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["SDK", "Network"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,61 +1,12 @@
|
||||
{
|
||||
"gem_name": "LandscapeCanvas",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "19c2b2d5018940108baf252934b8e6bf",
|
||||
"Name": "LandscapeCanvas",
|
||||
"DisplayName": "LandscapeCanvas",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "A node-based Editor for authoring Dynamic Vegetation.",
|
||||
"Tags": ["Vegetation"],
|
||||
"IconPath": "landscapeCanvasIcon.svg",
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule"
|
||||
}
|
||||
],
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "ff06785f7145416b9d46fde39098cb0c",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "LmbrCentral"
|
||||
},
|
||||
{
|
||||
"Uuid": "f394e7cf54424bba89615381bba9511b",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "Vegetation"
|
||||
},
|
||||
{
|
||||
"Uuid": "875b6fcbdeea44deaae7984ad9bb6cdc",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "GraphCanvas"
|
||||
},
|
||||
{
|
||||
"Uuid" : "0844f64a3acf4f5abf3a535dc9b63bc9",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment" : "GraphModel"
|
||||
},
|
||||
{
|
||||
"Uuid": "8825563d9d964ec3be3bab681f3bd9f2",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "GradientSignal"
|
||||
},
|
||||
{
|
||||
"Uuid": "5de82d29d6094bfe97c1a4d35fcd5fbe",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "SurfaceData"
|
||||
}
|
||||
]
|
||||
"display_name": "Landscape Canvas",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The Landscape Canvas Gem provides the Landscape Canvas editor, a node-based graph tool for authoring workflows to populate landscape with dynamic vegetation.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Environment", "Design", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+10
-11
@@ -1,14 +1,13 @@
|
||||
{
|
||||
"gem_name": "LmbrCentral",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "ff06785f7145416b9d46fde39098cb0c",
|
||||
"Name": "LmbrCentral",
|
||||
"DisplayName": "LmbrCentral",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "Required LmbrCentral Engine Gem.",
|
||||
"Tags": ["Required"],
|
||||
"IconPath": "preview.png",
|
||||
"EditorModule": true,
|
||||
"IsRequired": true
|
||||
"display_name": "O3DE Core (LmbrCentral)",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The O3DE Core (LmbrCentral) Gem provides required code and assets for running Open 3D Engine Editor.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Core", "Framework", "Assets"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
|
||||
+9
-13
@@ -1,16 +1,12 @@
|
||||
{
|
||||
"gem_name": "LocalUser",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "93ccb44a96b142f7942a3fb6b9ca36e1",
|
||||
"Name": "LocalUser",
|
||||
"DisplayName": "LocalUser",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Provides functionality for mapping local user ids to local player slots and managing local user profiles.",
|
||||
"Tags": ["User", "Local User", "Local User Profile", "Primary User", "Local Multiplayer", "Local Co-op", "Split Screen"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Local User",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Local User Gem provides functionality for mapping local user ids to local player slots and managing local user profiles.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Input", "Gameplay", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+9
-36
@@ -1,39 +1,12 @@
|
||||
{
|
||||
"gem_name": "LyShine",
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "ff06785f7145416b9d46fde39098cb0c",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "LmbrCentral"
|
||||
},
|
||||
{
|
||||
"Uuid": "5a149b6b3c964064bd4970f0e92f72e2",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "Texture Atlas"
|
||||
}
|
||||
],
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
},
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule",
|
||||
"Extends": "GameModule"
|
||||
}
|
||||
],
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "0fefab3f13364722b2eab3b96ce2bf20",
|
||||
"Name": "LyShine",
|
||||
"DisplayName": "LyShine",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "LyShine is the in-game UI system for Lumberyard",
|
||||
"Tags": ["UI","Required"],
|
||||
"IconPath": "preview.png",
|
||||
"IsRequired": true
|
||||
"display_name": "LyShine",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The LyShine Gem provides the runtime UI system and creation tools for Open 3D Engine projects.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["UI", "Tools", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,26 +1,12 @@
|
||||
{
|
||||
"gem_name": "LyShineExamples",
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "ff06785f7145416b9d46fde39098cb0c",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "LmbrCentral"
|
||||
},
|
||||
{
|
||||
"Uuid": "6bb61c9e547043f0afc5019d6d460b78",
|
||||
"VersionConstraints": [ "~>0.1.0" ],
|
||||
"_comment": "UiBasics"
|
||||
}
|
||||
],
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "c7935ecf5e8047fe8ca947b34b11cadb",
|
||||
"Name": "LyShineExamples",
|
||||
"DisplayName": "LyShineExamples",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "Provides example code for using LyShine.",
|
||||
"Tags": ["UI", "LyShine", "Example"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "LyShine Examples",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Asset",
|
||||
"summary": "The LyShine Examples Gem provides example code and assets for LyShine, the runtime UI system and editor for Open 3D Engine projects.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["UI", "Sample", "Assets"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+10
-11
@@ -1,14 +1,13 @@
|
||||
{
|
||||
"gem_name": "Maestro",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "3b9a978ed6f742a1acb99f74379a342c",
|
||||
"Name": "Maestro",
|
||||
"DisplayName": "Maestro",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "Lumberyard Cinematics Module",
|
||||
"Tags": ["Cinematics","Required"],
|
||||
"IconPath": "preview.png",
|
||||
"EditorModule": true,
|
||||
"IsRequired": true
|
||||
"display_name": "Maestro Cinematics",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Maestro Cinematics Gem provides Track View, Open 3D Engine's animated sequence and cinematics editor.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Animation", "Tools", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
|
||||
@@ -1,25 +1,12 @@
|
||||
{
|
||||
"gem_name": "MessagePopup",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "89225422672547deaca9e7a22b883973",
|
||||
"Name": "MessagePopup",
|
||||
"DisplayName": "MessagePopup",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Show a message popup ",
|
||||
"Tags": ["Untagged"],
|
||||
"IconPath": "preview.png",
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "6bb61c9e547043f0afc5019d6d460b78",
|
||||
"VersionConstraints": [
|
||||
"~>0.1.0"
|
||||
],
|
||||
"_comment": "UiBasics"
|
||||
}
|
||||
],
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Message Popup",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Message Popup Gem provides an example implementation of popup messages using LyShine in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Sample"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"gem_name": "Metastream",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "c02d7efe05134983b5699d9ee7594c3a",
|
||||
"Name": "Metastream",
|
||||
"DisplayName": "Metastream",
|
||||
"Version": "1.0.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "When the Metastream Gem is installed, it will set up a project to run an HTTP server that can service requests for the purpose of allowing broadcasters to customize game streams with overlays of statistics and event data from a game session creating a more engaging experience for the viewer.",
|
||||
"Tags": ["Twitch", "Metastream", "Streaming", "Broadcasting", "Overlay"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "Metastream",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Metastream Gem provides functionality for an HTTP server that allows broadcasters to customize game streams with overlays of statistics and event data from a game session.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Network", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,19 +1,12 @@
|
||||
{
|
||||
"gem_name": "Microphone",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "e70dd59f02f14ea49e6b38434e86ebf1",
|
||||
"Name": "Microphone",
|
||||
"DisplayName": "Microphone",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "Provides access to connected Microphone Devices and ability to read their input.",
|
||||
"Tags": ["Audio", "Microphone"],
|
||||
"IconPath": "preview.png",
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "6f63f2b6d07f4b89b4b7c86ebee7feb8",
|
||||
"VersionConstraints": [">=0.1.0"],
|
||||
"_comment": "AudioSystem"
|
||||
}
|
||||
]
|
||||
"display_name": "Microphone",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Microphone Gem provides support for audio input through microphones.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Audio", "Input"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
{
|
||||
"gem_name": "Multiplayer",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "9524EBD3E64D4D13A9764A18DB9A564F",
|
||||
"Name": "Multiplayer",
|
||||
"Version": "1.0.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Tags": ["Multiplayer","Networking"],
|
||||
"Summary": "The Multiplayer Gem provides high level advanced multiplayer gameplay functionality such as entity replication, local prediction, and server side backward reconciliation",
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "Multiplayer",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Multiplayer Gem provides a public API for multiplayer functionality such as connecting and hosting.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Multiplayer", "Network", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{
|
||||
"gem_name": "MultiplayerCompression",
|
||||
"display_name": "Multiplayer Compression",
|
||||
"summary": "The Multiplayer Compression gem provides an open source Compressor for use with AzNetworking's transport layer.",
|
||||
"canonical_tags": ["Multiplayer", "Networking", "Utility"],
|
||||
"user_tags": ["MultiplayerCompression"],
|
||||
"icon_path": "preview.png",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"provider": "Open 3D Foundation"
|
||||
"summary": "The Multiplayer Compression Gem provides an open source Compressor for use with AzNetworking's transport layer.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Multiplayer", "Network", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
{
|
||||
"gem_name": "NvCloth",
|
||||
"display_name": "NVIDIA Cloth [PREVIEW]",
|
||||
"summary": "Provides the functionality needed to add cloth simulation.",
|
||||
"display_name": "NVIDIA Cloth (NvCloth)",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The NVIDIA Cloth Gem provides functionality to create fast, realistic cloth simulation with the NVIDIA Cloth library.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Physics"],
|
||||
"icon_path": "preview.png"
|
||||
"user_tags": ["Physics", "Simulation", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"gem_name": "PBSreferenceMaterials",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "07375b61b1a2424bb03088bbdf28b2c8",
|
||||
"Name": "PBSreferenceMaterials",
|
||||
"DisplayName": "PBSreferenceMaterials",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "NoCode",
|
||||
"Summary": "A set of Physically Based Shading reference materials and texture assets",
|
||||
"Tags": ["Asset"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "PBS Reference Materials",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Asset",
|
||||
"summary": "The PBS Reference Materials Gem provides physically based reference materials for Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Sample", "Assets"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+9
-19
@@ -1,22 +1,12 @@
|
||||
{
|
||||
"gem_name": "PhysX",
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "ff06785f7145416b9d46fde39098cb0c",
|
||||
"VersionConstraints": [
|
||||
"~>0.1"
|
||||
],
|
||||
"_comment": "LmbrCentral"
|
||||
}
|
||||
],
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "4e08125824434932a0fe3717259caa47",
|
||||
"Name": "PhysX",
|
||||
"DisplayName": "PhysX",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "The PhysX Gem enables the NVIDIA PhysX SDK to provide physics simulation for Lumberyard. The PhysX system is not compatible with the legacy physics system. You cannot use components interchangeably between each system.",
|
||||
"Tags": ["Physics"],
|
||||
"IconPath": "preview.png",
|
||||
"EditorModule": true
|
||||
"display_name": "PhysX",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The PhysX Gem provides physics simulation with NVIDIA PhysX including static and dynamic rigid body simulation, force regions, ragdolls, and dynamic PhysX joints.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Physics", "Simulation", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,29 +1,12 @@
|
||||
{
|
||||
"gem_name": "PhysXDebug",
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "4e08125824434932a0fe3717259caa47",
|
||||
"VersionConstraints": [
|
||||
">=0.1"
|
||||
],
|
||||
"_comment": "PhysX Gem"
|
||||
},
|
||||
{
|
||||
"Uuid": "bab8807a1bc646b3909f3cc200ffeedf",
|
||||
"VersionConstraints": [
|
||||
">=0.1.0"
|
||||
],
|
||||
"_comment": "ImGui Gem"
|
||||
}
|
||||
],
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "516145e2d9904b13813f1b54605e26a6",
|
||||
"Name": "PhysXDebug",
|
||||
"DisplayName": "PhysX Debug [PREVIEW]",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "Dynamic",
|
||||
"Summary": "Debug features for the PhysX gem.",
|
||||
"Tags": ["Physics", "Debug"],
|
||||
"IconPath": "preview.png",
|
||||
"EditorModule": true
|
||||
"display_name": "PhysX Debug",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The PhysX Debug Gem provides debugging functionality and visualizations for NVIDIA PhysX in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Physics", "Simulation", "Debug"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,42 +1,12 @@
|
||||
{
|
||||
"gem_name": "PhysXSamples",
|
||||
"Dependencies": [
|
||||
{
|
||||
"Uuid": "ed07631f95fb4be1bd10cd37298ec697",
|
||||
"VersionConstraints": [
|
||||
">=0.1"
|
||||
],
|
||||
"_comment": "Uses mesh assets from primatives gem"
|
||||
},
|
||||
{
|
||||
"Uuid": "2c227161447b4d77a5b07c093e214fe3",
|
||||
"VersionConstraints": [
|
||||
">=0.1"
|
||||
],
|
||||
"_comment": "Uses textures from DevTextures gem"
|
||||
},
|
||||
{
|
||||
"Uuid": "4e08125824434932a0fe3717259caa47",
|
||||
"VersionConstraints": [
|
||||
">=0.1"
|
||||
],
|
||||
"_comment": "Requires PhysX"
|
||||
},
|
||||
{
|
||||
"Uuid": "66239f50bf754354b514c850c8b841fb",
|
||||
"VersionConstraints": [
|
||||
">=0.1"
|
||||
],
|
||||
"_comment": "Uses debug draw Script Canvas nodes"
|
||||
}
|
||||
],
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "c4a4aadba44241ae9f0141e145def7f7",
|
||||
"Name": "PhysXSamples",
|
||||
"DisplayName": "PhysXSamples",
|
||||
"Version": "0.1.0",
|
||||
"LinkType": "NoCode",
|
||||
"Summary": "Collection of samples that demostrate PhysX features.",
|
||||
"Tags": ["Asset"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "PhysX Samples",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Asset",
|
||||
"summary": "The PhysX Samples Gem provides sample assets and scripts that demonstrate PhysX Gem features in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Physics", "Simulation", "Sample"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,17 +1,12 @@
|
||||
{
|
||||
"gem_name": "PrefabBuilder",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "88500802311C4793B03484BE2091B607",
|
||||
"Name": "PrefabBuilder",
|
||||
"DisplayName": "PrefabBuilder",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Asset Processor builder module for Prefabs",
|
||||
"Tags": ["Prefabs"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Prefab Builder",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Prefab Builder Gem provides an Asset Processor module for prefabs, which are complex assets built by combining smaller entities.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Utility", "Core"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
+9
-13
@@ -1,16 +1,12 @@
|
||||
{
|
||||
"gem_name": "Presence",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "903ce283760647049efaef70d9368eeb",
|
||||
"Name": "Presence",
|
||||
"DisplayName": "Presence",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Platform agnostic interface for Presence services",
|
||||
"Tags": [ "Presence", "Rich Presence" ],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Type": "GameModule"
|
||||
}
|
||||
]
|
||||
"display_name": "Presence",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Presence Gem provides a target platform agnostic interface for Presence services.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Network", "Gameplay", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"gem_name": "PrimitiveAssets",
|
||||
"GemFormatVersion": 3,
|
||||
"Uuid": "ed07631f95fb4be1bd10cd37298ec697",
|
||||
"Name": "PrimitiveAssets",
|
||||
"DisplayName": "Primitive Assets",
|
||||
"Version": "1.0.0",
|
||||
"LinkType": "NoCode",
|
||||
"Summary": "Provides simple primitive shape assets useful for quickly building a basic scene.",
|
||||
"Tags": ["Getting Started", "Asset"],
|
||||
"IconPath": "preview.png"
|
||||
"display_name": "Primitive Assets",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Asset",
|
||||
"summary": "The Primitive Assets Gem provides primitive shape mesh assets with physics enabled.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Sample", "Debug"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
@@ -1,17 +1,12 @@
|
||||
{
|
||||
"gem_name": "PythonAssetBuilder",
|
||||
"GemFormatVersion": 4,
|
||||
"Uuid": "0a5fda05323649009444bb7c3ee2b9c4",
|
||||
"Name": "PythonAssetBuilder",
|
||||
"DisplayName": "PythonAssetBuilder",
|
||||
"Version": "0.1.0",
|
||||
"Summary": "Runs asset builders written in Python scripts.",
|
||||
"Tags": ["asset"],
|
||||
"IconPath": "preview.png",
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "Editor",
|
||||
"Type": "EditorModule"
|
||||
}
|
||||
]
|
||||
"gem_name": "PythonAssetBuilder",
|
||||
"display_name": "Python Asset Builder",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Python Asset Builder Gem provides functionality to implement custom asset builders in Python for Asset Processor.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Assets", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user