Chris Santora ec9cafcef5 Improved the displacement property handling to be more cohesive and intuitive. Also fixed a bunch of edge cases.
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.
2021-05-14 23:05:33 -07:00
2021-03-08 14:30:57 -08:00
2021-05-10 22:02:30 -05:00
2021-05-12 16:15:18 -07:00
2021-03-25 13:57:57 -07:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-04-08 10:45:16 -07:00
2021-03-08 14:30:57 -08:00
2021-04-28 21:38:43 -05:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-04-30 14:54:58 -07:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00
2021-03-08 14:30:57 -08:00

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.

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

Build Steps

  1. Download the 3rdParty zip file from here: https://d2c171ws20a1rv.cloudfront.net/3rdParty-windows-no-symbols-rev13.zip

  2. 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_LOCATION environment variable)

  3. 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
  4. 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"
    
  5. 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
    
  6. Alternatively, you can do this through the CMake GUI:

    1. Start cmake-gui.exe
    2. Select the local path of the repo under "Where is the source code"
    3. Select a path where to build binaries under "Where to build the binaries"
    4. Click "Configure"
    5. Wait for the key values to populate. Fill in the fields that are relevant, including LY_3RDPARTY_PATH, LY_PACKAGE_SERVER_URLS, and LY_PROJECTS
    6. Click "Generate"
  7. 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
    
  8. This will compile after some time and binaries will be available in the build path you've specified

Setting up new projects

  1. Setup new projects using this command
    <Repo path>\scripts\o3de.bat create-project --project-path <New project path>
    
  2. 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.

S
Description
Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform 3D engine that enables developers and content creators to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations without any fees or commercial obligations.
Readme 150 MiB
Languages
C++ 82.6%
Python 13.1%
CMake 1.5%
Roff 1.2%
Lua 0.5%
Other 0.8%