I'm not sure which of these edge cases may have existed before updating the property handling, and which were caused by it. - Rearranged the per-layer parallax property groups because these are more general than just parallax. They can be used for displacement-based blending regardless of whether a parallax effect is being used. -- Renamed "Parallax Mapping" to "Displacement" because these properties can be used for other things besides parallax, in particular the new displacement-based blend modes. -- Removed the unnecessary per-layer "enable parallax" flags. This also allowed me to remove the StandardMultilayerPBR_ParallaxPerLayer.lua script and replace this with simply a UseTexture functor for each layer. -- Made the "offset" property always available, so this can be used to adjust displacement for blending purposes even when there is no heightmap or parallax. The "factor" property still only shows up with a heightmap because its only purpose is to scale the heightmap. -- In order to get the offset to work when there is no texture map, I had to fix the logic a bit in GetLayerDepthValues where it was ignoring the offset. -- Had to rearrange the logic in StandardMultilayerPBR_Displacement.lua a bit to get this all working, particularly because the per-layer displacement properties are no longer hidden behind an enable flag. - Change the displacementBlendFactor to displacementBlendDistance because it felt weird when sliding per-layer displacment offset values and seeing this impact the surface property transition. Using an absolute distance value feels more natural. - Made the displacement blend mask push the displacement down *past* the min displacement value to address edge cases where blend mask 0 didn't actually make a layer disappear. (See GetSubMinDisplacement()). - Inlined the GetBlendWeightsFromLayerDepthValues code into GetBlendWeights because I realized it was only being used there, and the code is easier to read this way IMO. - Displacement-based blend weights weren't being normalized in cases where layerDepthBlendDistance is 0, which caused incorrect depth values where two layers meet.
Project Spectra Private Preview
Confidentiality; Pre-Release Access
Welcome to the Project Spectra Private Preview. This is a confidential pre-release project; your use is subject to the nondisclosure agreement between you (or your organization) and Amazon. Do not disclose the existence of this project, your participation in it, or any of the materials provided, to any unauthorized third party. To request access for a third party, please contact Royal O'Brien, obriroya@amazon.com.
Download and Install
This repository uses Git LFS for storing large binary files. You will need to create a Github personal access token to authenticate with the LFS service.
Create a Git Personal Access Token
You will need your personal access token credentials to authenticate when you clone the repository.
Create a personal access token with the 'repo' scope.
(Recommended) Verify you have a credential manager installed to store your credentials
Recent versions of Git install a credential manager to store your credentials so you don't have to put in the credentials for every request.
It is highly recommended you check that you have a credential manager installed and configured
Clone the repository
> git clone https://github.com/aws-lumberyard/o3de.git
Cloning into 'o3de'...
# initial prompt for credentials to download the repository code
# enter your Github username and personal access token
remote: Counting objects: 29619, done.
Receiving objects: 100% (29619/29619), 40.50 MiB | 881.00 KiB/s, done.
Resolving deltas: 100% (8829/8829), done.
Updating files: 100% (27037/27037), done.
# second prompt for credentials when downloading LFS files
# enter your Github username and personal access token
Filtering content: 100% (3853/3853), 621.43 MiB | 881.00 KiB/s, done.
If you have the Git credential manager core installed, you should not be prompted for your credentials anymore.
Building the Engine
Build Requirements and redistributables
- Visual Studio 2019 16.9.2 (All versions supported, including Community): https://visualstudio.microsoft.com/downloads/
- Install the following workloads:
- Game Development with C++
- MSVC v142 - VS 2019 C++ x64/x86
- Install the following workloads:
- Visual C++ redistributable: https://visualstudio.microsoft.com/downloads/#other-family
- FBXSDK for VS2015: https://www.autodesk.com/developer-network/platform-technologies/fbx-sdk-2016-1-2
- WWise - 2019.2.8.7432: https://www.audiokinetic.com/download/
- CMake 3.19.1: https://cmake.org/files/LatestRelease/cmake-3.19.1-win64-x64.msi
Build Steps
-
Download the 3rdParty zip file from here: https://d2c171ws20a1rv.cloudfront.net/3rdParty-windows-no-symbols-rev13.zip
-
Unzip this file into a writable folder. This will also act as a cache location for the 3rdParty downloader by default (configurable with the
LY_PACKAGE_DOWNLOAD_CACHE_LOCATIONenvironment variable) -
Install the following redistributables to the following:
- Visual Studio and VC++ redistributable can be installed to any location
- FBXSDK should be installed to
<3rdParty path>\FbxSdk\2016.1.2-az.1. See the README in this folder for details - WWise should be installed to:
<3rdParty Path>\Wwise\2019.2.8.7432 - CMake should be installed to:
<3rdParty Path>\CMake\3.19.1
-
Add the following environment variables through the command line
set LY_3RDPARTY_PATH=<Location of the unzipped 3rdParty zip> set LY_PACKAGE_SERVER_URLS="https://d2c171ws20a1rv.cloudfront.net" -
Configure the source into a solution using this command line, replacing to a path you've created
cmake -B <your build location> -S <source-dir> -G "Visual Studio 16 2019" -DLY_3RDPARTY_PATH=%LY_3RDPARTY_PATH% -DLY_UNITY_BUILD=ON -DLY_PROJECTS=AutomatedTesting -
Alternatively, you can do this through the CMake GUI:
- Start
cmake-gui.exe - Select the local path of the repo under "Where is the source code"
- Select a path where to build binaries under "Where to build the binaries"
- Click "Configure"
- Wait for the key values to populate. Fill in the fields that are relevant, including
LY_3RDPARTY_PATH,LY_PACKAGE_SERVER_URLS, andLY_PROJECTS - Click "Generate"
- Start
-
The configuration of the solution is complete. To build the Editor and AssetProcessor to binaries, run this command inside your repo:
cmake --build <your build location> --target AutomatedTesting.GameLauncher AssetProcessor Editor --config profile -- /m -
This will compile after some time and binaries will be available in the build path you've specified
Setting up new projects
- Setup new projects using this command
<Repo path>\scripts\o3de.bat create-project --project-path <New project path> - Once you're ready to build the project, run the same set of commands to configure and build:
cmake -B <your build location> -S <source-dir> -G "Visual Studio 16 2019" -DLY_3RDPARTY_PATH=%LY_3RDPARTY_PATH% -DLY_PROJECTS=<New project name> -DLY_MONOLITHIC_GAME=1 cmake --build <your build location> --target <New Project Name> --config profile -- /m
License
For terms please see the LICENSE*.TXT file at the root of this distribution.