nicoell / SphereTracing

Exploring possibilities of sphere tracing: Global Illumination (AO) and Soft Shadows
0 stars 0 forks source link

Verschiedene Oberflächenmaterialien #10

Open nicoell opened 6 years ago

nicoell commented 6 years ago

Ich verwende das Issue zum Erklären, wie man mit den neuen Materialen umgeht. Der struct Hit enthält jetzt neben der MaterialId auch die Materialeigenschaften selbst (ein weiteres Struct StMaterial.

Neues Material erstellen:

  1. Material im Projekt erstellen über Assets > Create > SphereTracing > Material
  2. Der SphereTracingManager Komponente auf der Main Camera im Array St Materials das Material einem Element zuweisen (ggf. Größe des Arrays anpassen, Auswahl durch Klicken auf den kleinen Kreis neben Element).
  3. Der Array Index ist die Material ID, die im Shader verwendet werden muss um das Material zu verwenden. Am besten #define MAT_NEW index in der WorldLogic.cginc dazu verwenden.

Um neue Materialeigenschaften hinzuzufügen:

  1. Dem struct StMaterial in der StructDefinitions.cginc einen neuen member geben.
  2. Dem struct StMaterialData in der StMaterial.cs ebenfalls den neuen member des gleichen Typs geben.
  3. Die static int GetSize() Methode in der StMaterial.cs anpassen, so dass sie die richtige Größe des structs in Bytes zurückgibt, also die Größe des Typs des neuen members addieren.