Skip to content

Commit

Permalink
v0.2
Browse files Browse the repository at this point in the history
  • Loading branch information
South-Walker committed Feb 23, 2020
1 parent b8c6f8e commit 89d9e94
Show file tree
Hide file tree
Showing 36 changed files with 270 additions and 50 deletions.
Binary file modified .vs/RayTracerWithUnity/v16/.suo
Binary file not shown.
Binary file modified .vs/RayTracerWithUnity/v16/Browse.VC.db
Binary file not shown.
Binary file modified .vs/RayTracerWithUnity/v16/Server/sqlite3/storage.ide
Binary file not shown.
16 changes: 9 additions & 7 deletions Assembly-CSharp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,21 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\Script\ComputeBufferHelper.cs" />
<Compile Include="Assets\Script\GeometricObjects\Mesh.cs" />
<Compile Include="Assets\Script\GeometricObjects\PointLight.cs" />
<Compile Include="Assets\Script\GeometricObjects\Sphere.cs" />
<Compile Include="Assets\Script\MeshObject.cs" />
<Compile Include="Assets\Script\RayTracingMaster.cs" />
<Compile Include="Assets\Script\Sampler.cs" />
<Compile Include="Assets\Script\Common\ComputeBufferHelper.cs" />
<Compile Include="Assets\Script\Common\GeometricObjects\DirectionalLight.cs" />
<Compile Include="Assets\Script\Common\GeometricObjects\Mesh.cs" />
<Compile Include="Assets\Script\Common\GeometricObjects\PointLight.cs" />
<Compile Include="Assets\Script\Common\GeometricObjects\Sphere.cs" />
<Compile Include="Assets\Script\Common\MeshObject.cs" />
<Compile Include="Assets\Script\Common\RayTracingMaster.cs" />
<Compile Include="Assets\Script\Common\Sampler.cs" />
<None Include="Assets\Shader\Utilitie.compute" />
<None Include="Assets\Shader\Random.compute" />
<None Include="Assets\AddShader.shader" />
<None Include="Assets\Shader\Camera.compute" />
<None Include="Assets\Shader\Material.compute" />
<None Include="Assets\Shader\GeometricObjects\Mesh.compute" />
<None Include="Assets\Shader\GeometricObjects\DirectionalLight.compute" />
<None Include="Assets\Shader\World\World.compute" />
<None Include="Assets\Shader\GeometricObjects\PointLight.compute" />
<None Include="Assets\Shader\GeometricObjects\Plane.compute" />
Expand Down
125 changes: 116 additions & 9 deletions Assets/Scenes/SampleScene.unity → Assets/Scenes/SampleGalaxy.unity
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 705507994}
m_IndirectSpecularColor: {r: 0.37311992, g: 0.38074034, b: 0.35872713, a: 1}
m_IndirectSpecularColor: {r: 0.4508763, g: 0.49915278, b: 0.56585836, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
Expand Down Expand Up @@ -120,6 +120,112 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &297084652
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 297084657}
- component: {fileID: 297084656}
- component: {fileID: 297084655}
- component: {fileID: 297084654}
- component: {fileID: 297084653}
m_Layer: 0
m_Name: Glass
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &297084653
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 297084652}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7541147b37c1c3b48a5765c5464071a0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!64 &297084654
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 297084652}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &297084655
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 297084652}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &297084656
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 297084652}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &297084657
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 297084652}
m_LocalRotation: {x: -0.61237246, y: -0.61237246, z: 0.35355335, w: 0.35355335}
m_LocalPosition: {x: -150, y: 60, z: 150}
m_LocalScale: {x: 15, y: 1, z: 10}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: -120, z: 90}
--- !u!1 &705507993
GameObject:
m_ObjectHideFlags: 0
Expand All @@ -146,9 +252,9 @@ Light:
m_GameObject: {fileID: 705507993}
m_Enabled: 1
serializedVersion: 9
m_Type: 2
m_Type: 1
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 10
m_Intensity: 5
m_Range: 1000
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
Expand Down Expand Up @@ -193,7 +299,7 @@ Light:
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 1.257e-42, y: 1.02e-43, z: 9.07e-43, w: 0}
m_BoundingSphereOverride: {x: 0, y: 0, z: NaN, w: -2.1426896e+12}
m_UseBoundingSphereOverride: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
Expand All @@ -204,13 +310,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705507993}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 20000, y: 50, z: 0}
m_LocalRotation: {x: 0.14496295, y: -0.692088, z: 0.14496295, w: 0.692088}
m_LocalPosition: {x: 0, y: 0, z: -0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_LocalEulerAnglesHint: {x: 23.66, y: -90, z: 0}
--- !u!1 &719715546
GameObject:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -382,7 +488,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963194225}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 73.59, z: -315}
m_LocalPosition: {x: -50, y: 50, z: -125}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
Expand All @@ -400,7 +506,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b68bd0f3597ed9345a8d240d00397883, type: 3}
m_Name:
m_EditorClassIdentifier:
PointLightObject:
PointLightObject: []
DirectionalLightObject:
- {fileID: 705507994}
SphereRadius: {x: 5, y: 30}
SpheresMax: 0
Expand Down
File renamed without changes.
8 changes: 8 additions & 0 deletions Assets/Script/Common.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
File renamed without changes.
File renamed without changes.
29 changes: 29 additions & 0 deletions Assets/Script/Common/GeometricObjects/DirectionalLight.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public struct DirectionalLight
{
private static List<DirectionalLight> directionallights = new List<DirectionalLight>();
public Vector3 direction;
public Vector3 color;
public float intensity;
public static void BuildDirectionalLightList(IEnumerable<Light> lights)
{
Vector4 z = new Vector4(0, 0, 1, 0);
foreach (var light in lights)
{
DirectionalLight newlight = new DirectionalLight
{
direction = light.transform.localToWorldMatrix * z,
color = new Vector3(light.color.r, light.color.g, light.color.b),
intensity = light.intensity
};
directionallights.Add(newlight);
}
}
public static void SetObjectToBuffer()
{
ComputeBufferHelper.CreateComputeBuffer("_DirectionalLights", directionallights);
}
}
11 changes: 11 additions & 0 deletions Assets/Script/Common/GeometricObjects/DirectionalLight.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
public class RayTracingMaster : MonoBehaviour
{
public List<Light> PointLightObject;
public List<Light> DirectionalLightObject;
public Vector2 SphereRadius = new Vector2(5.0f, 30.0f);
public uint SpheresMax = 1000;
public float SpherePlacementRadius = 200.0f;
Expand Down Expand Up @@ -38,6 +39,9 @@ private void OnEnable()
Sphere.SetObjectToBuffer();
PointLight.BuildPointLightList(PointLightObject);
PointLight.SetObjectToBuffer();
DirectionalLight.BuildDirectionalLightList(DirectionalLightObject);
DirectionalLight.SetObjectToBuffer();

}
private void OnDisable()
{
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 8 additions & 0 deletions Assets/Script/Galaxy.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 26 additions & 0 deletions Assets/Shader/GeometricObjects/DirectionalLight.compute
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#ifndef DIRECTIONALLIGHT
#define DIRECTIONALLIGHT
#include "Utilitie.compute"
struct DirectionalLight
{
float3 direction;
float3 color;
float intensity;
static void Init()
{

}
void Hit(Ray ray, inout RayHit bestHit)
{

}
float3 GetDirection(float3 eyeposition)
{
return -direction;
}
float GetHitTime(Ray ray)
{
return 1.#INF;
}
};
#endif
8 changes: 8 additions & 0 deletions Assets/Shader/GeometricObjects/DirectionalLight.compute.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion Assets/Shader/GeometricObjects/Hitable.compute
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
#include "Mesh.compute"
#include "SphereWithTexture.compute"
#include "PointLight.compute"
#include "DirectionalLight.compute"
//nothing
//Sphere SphereWithTexture Plane Mesh PointLight 类继承hitable
//Sphere SphereWithTexture Plane Mesh PointLight DirectionalLight类继承hitable
//hitable类的派生需要实现接口
//void Hit(Ray ray, inout RayHit bestHit)
//static void Init()
Expand Down
6 changes: 3 additions & 3 deletions Assets/Shader/GeometricObjects/Mesh.compute
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ struct Mesh
bestHit.distance = t;
bestHit.position = ray.origin + t * ray.direction;
bestHit.normal = TriLinearInterpolation(n0, n1, n2, u, v);
bestHit.albedo = float3(0.5f,0.5f,0.5f);
bestHit.specular = float3(0.0f, 0.0f, 0.0f);
bestHit.smoothness = 5.0f;
bestHit.albedo = float3(0.3f,0.3f,0.3f);
bestHit.specular = float3(1.0f, 1.0f, 1.0f);
bestHit.smoothness = 1000.0f;
bestHit.emission = 0.0f;
}
}
Expand Down
Loading

0 comments on commit 89d9e94

Please sign in to comment.