Just a whole bunch of particles being rendered through geometry buffers (and modified on the GPU); also working on some better GPU-accelerated noise.
hugs, trent
A Pen by Trent Polack on CodePen.
Just a whole bunch of particles being rendered through geometry buffers (and modified on the GPU); also working on some better GPU-accelerated noise.
hugs, trent
A Pen by Trent Polack on CodePen.
#Quixel Megascans Bridge API ####Updated: Aug 19th, 2016
We have developed an API to fetch information from the Bridge. The following is an initial list of endpoints any software will be able to retrieve information from.
#Quixel Megascans Scripting Reference ###Updated: Aug 19th, 2016
The Megascans Bridge allows the user to send assets from the Bridge to external applications. The Bridge currently supports the following tools:
// Generally, developers in UE4 tend towards the following convention for enumerations: | |
UENUM( BlueprintType ) | |
enum class ENoiseGeneratorCellularType : uint8 | |
{ | |
NGCT_Natural UMETA( DisplayName = "Natural" ), | |
NGCT_Euclidean UMETA( DisplayName = "Euclidean" ), | |
NGCT_Manhattan UMETA( DisplayName = "Manhattan" ), | |
NGCT_Max UMETA( Hidden ) | |
}; |
// NOTE: This does not result in the accessors being available for blueprint-use as they're not UFUNCTIONs. | |
UCLASS( ) | |
class URawr : public UObject | |
{ | |
GENERATED_CLASS( ) | |
protected: | |
float RawrValue; | |
// Structure to define a lambda object, return type, and any arguments to pass into the lambda expression upon execution. | |
template< typename O, typename R, typename ... A > | |
struct LambdaExpression | |
{ | |
O _object; | |
R( O::*_function )( A... ) const; | |
LambdaExpression( const O & object ) | |
: _object( object ), _function( &decltype( _object )::operator() ) | |
{ } |
// [GIST NOTE] Added at the bottom of the existing class (for editor and runtime). | |
// Check the system environment variables for HOUDINI_PATH (instead of just hard-coded path searching like the default plugin does). | |
public static bool GetHoudiniPath( int PluginVersionMajor, int PluginVersionMinor, int PluginVersionPatch, out string HoudiniPathOut ) | |
{ | |
string version = null; | |
// Do the easy check: an environment variable I recommend to people (trent, 12/31/17). | |
HoudiniPathOut = System.Environment.GetEnvironmentVariable("HOUDINI_PATH", System.EnvironmentVariableTarget.User); | |
if ( !string.IsNullOrEmpty( HoudiniPathOut ) ) |
// FMechPartDataBase Data Structure. | |
// This structure is solely for serialization/deserialization purposes (it gets transferred to the UObject instance after that process is done). | |
USTRUCT( ) | |
struct FMechPartDataBase_SerializationStructure | |
{ | |
GENERATED_BODY( ) | |
public: | |
FMechPartDataBase_SerializationStructure( ) | |
: ConfigName( NAME_None ) |
// Comments are left by me, not from the code. | |
// Because why not have a default set or make the method abstract or, really, anything but this. Luckily no one would ever | |
// think to use ::GetMaxSpeed as a divisor or anything. | |
inline float UMovementComponent::GetMaxSpeed() const | |
{ | |
return 0.f; | |
} | |
// FUN FACT: UMovementComponent defines a plethora of methods for managing the maximum speed of a component. It does not, |