提交 0850a8e6 编写于 作者: H happyfire

- Unity模型坐标系转换

+ RenderingConfig
+ Test assets
上级 cfa12a8c
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<LangVersion>8.0</LangVersion> <LangVersion>latest</LangVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
...@@ -52,9 +52,6 @@ ...@@ -52,9 +52,6 @@
<UnityBuildTarget>StandaloneWindows64:19</UnityBuildTarget> <UnityBuildTarget>StandaloneWindows64:19</UnityBuildTarget>
<UnityVersion>2020.3.25f1c1</UnityVersion> <UnityVersion>2020.3.25f1c1</UnityVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Analyzer Include="C:\Program Files (x86)\Microsoft Visual Studio Tools for Unity\16.0\Analyzers\Microsoft.Unity.Analyzers.dll" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Assets\URasterizer\Codes\RenderingObject.cs" /> <Compile Include="Assets\URasterizer\Codes\RenderingObject.cs" />
<Compile Include="Assets\URasterizer\Codes\StatsPanel.cs" /> <Compile Include="Assets\URasterizer\Codes\StatsPanel.cs" />
...@@ -62,6 +59,7 @@ ...@@ -62,6 +59,7 @@
<Compile Include="Assets\URasterizer\Codes\Triangle.cs" /> <Compile Include="Assets\URasterizer\Codes\Triangle.cs" />
<Compile Include="Assets\URasterizer\Codes\Rasterizer.cs" /> <Compile Include="Assets\URasterizer\Codes\Rasterizer.cs" />
<Compile Include="Assets\URasterizer\Codes\TransformTool.cs" /> <Compile Include="Assets\URasterizer\Codes\TransformTool.cs" />
<Compile Include="Assets\URasterizer\Codes\RenderingConfig.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="UnityEngine"> <Reference Include="UnityEngine">
......
fileFormatVersion: 2 fileFormatVersion: 2
guid: 9fc0d4010bbf28b4594072e72b8655ab guid: aad295324043c2342a5719e447636bb4
folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:
......
fileFormatVersion: 2
guid: b932241fa076aa849845875be21daa80
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: RotateX
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 4092932959304684975}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1107 &4092932959304684975
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 5718446503004658133}
m_Position: {x: 235, y: 65, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 5718446503004658133}
--- !u!1102 &5718446503004658133
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: RotateXAnimation
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 63b7013067231414e8c73a8951e513c0, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
fileFormatVersion: 2
guid: 5a61133bba3c7154e9648343d9a914a0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: RotateXAnimation
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 360, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: -180, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 2
value: {x: 0, y: 0, z: 0}
inSlope: {x: -180, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 4
script: {fileID: 0}
typeID: 4
customType: 4
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 2
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 360
inSlope: 0
outSlope: -180
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2
value: 0
inSlope: -180
outSlope: 0
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.x
path:
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.y
path:
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.z
path:
classID: 4
script: {fileID: 0}
m_EulerEditorCurves:
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
path:
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
path:
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
path:
classID: 4
script: {fileID: 0}
m_HasGenericRootTransform: 1
m_HasMotionFloatCurves: 0
m_Events: []
fileFormatVersion: 2
guid: 63b7013067231414e8c73a8951e513c0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: RotateY
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 4092932959304684975}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1107 &4092932959304684975
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 4577369696552070457}
m_Position: {x: 200, y: 0, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 4577369696552070457}
--- !u!1102 &4577369696552070457
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: RotateAnimation
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 198396fea84ac3b44beab9956314788f, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
fileFormatVersion: 2
guid: a5d59b3801cddbb458d4c0acecdf77ed
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: RotateYAnimation
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 180, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 2
value: {x: 0, y: 360, z: 0}
inSlope: {x: 0, y: 180, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 4
script: {fileID: 0}
typeID: 4
customType: 4
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 2
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.x
path:
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 180
tangentMode: 65
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2
value: 360
inSlope: 180
outSlope: 0
tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.y
path:
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.z
path:
classID: 4
script: {fileID: 0}
m_EulerEditorCurves:
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
path:
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
path:
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
path:
classID: 4
script: {fileID: 0}
m_HasGenericRootTransform: 1
m_HasMotionFloatCurves: 0
m_Events: []
fileFormatVersion: 2
guid: 198396fea84ac3b44beab9956314788f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2 fileFormatVersion: 2
guid: 631f6e43805a5c046a200785ba61fcdb guid: 64b974e155f93944ab3bf497d3b8ff89
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
......
...@@ -214,7 +214,7 @@ GameObject: ...@@ -214,7 +214,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!65 &256726192 --- !u!65 &256726192
BoxCollider: BoxCollider:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -284,13 +284,13 @@ Transform: ...@@ -284,13 +284,13 @@ Transform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 256726191} m_GameObject: {fileID: 256726191}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0.35355338, y: 0.35355338, z: -0.1464466, w: 0.8535535}
m_LocalPosition: {x: 0, y: 0, z: 2.74} m_LocalPosition: {x: -1, y: -1.25, z: 3.72}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 4 m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 45, y: 45, z: 0}
--- !u!114 &256726196 --- !u!114 &256726196
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -396,8 +396,7 @@ MonoBehaviour: ...@@ -396,8 +396,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
rawImg: {fileID: 129304943} rawImg: {fileID: 129304943}
ClearColor: {r: 0, g: 0, b: 0, a: 0.5019608} _config: {fileID: 11400000, guid: 18e833324d51d904aa0c708c8c56856c, type: 2}
WireframeMode: 0
--- !u!1 &870169031 --- !u!1 &870169031
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -576,8 +575,8 @@ GameObject: ...@@ -576,8 +575,8 @@ GameObject:
- component: {fileID: 963210798} - component: {fileID: 963210798}
- component: {fileID: 963210797} - component: {fileID: 963210797}
- component: {fileID: 963210796} - component: {fileID: 963210796}
- component: {fileID: 963210795}
- component: {fileID: 963210799} - component: {fileID: 963210799}
- component: {fileID: 963210800}
m_Layer: 0 m_Layer: 0
m_Name: Sphere m_Name: Sphere
m_TagString: Untagged m_TagString: Untagged
...@@ -585,19 +584,6 @@ GameObject: ...@@ -585,19 +584,6 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!135 &963210795
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963210794}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &963210796 --- !u!23 &963210796
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -655,7 +641,7 @@ Transform: ...@@ -655,7 +641,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963210794} m_GameObject: {fileID: 963210794}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -9.2} m_LocalPosition: {x: -2, y: 1, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 1825649044} - {fileID: 1825649044}
...@@ -679,6 +665,25 @@ MonoBehaviour: ...@@ -679,6 +665,25 @@ MonoBehaviour:
Color0: {r: 1, g: 0, b: 0, a: 1} Color0: {r: 1, g: 0, b: 0, a: 1}
Color1: {r: 0, g: 1, b: 0, a: 1} Color1: {r: 0, g: 1, b: 0, a: 1}
Color2: {r: 0, g: 0, b: 1, a: 1} Color2: {r: 0, g: 0, b: 1, a: 1}
--- !u!95 &963210800
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963210794}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: a5d59b3801cddbb458d4c0acecdf77ed, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0
--- !u!1 &1292409238 --- !u!1 &1292409238
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -849,7 +854,7 @@ Transform: ...@@ -849,7 +854,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1297680259} m_GameObject: {fileID: 1297680259}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 1.45, y: 0, z: 0} m_LocalPosition: {x: 1.278, y: -0.616, z: 0.637}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
...@@ -868,7 +873,7 @@ MonoBehaviour: ...@@ -868,7 +873,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
mesh: {fileID: 0} mesh: {fileID: 0}
DoubleSideRendering: 1 DoubleSideRendering: 0
Color0: {r: 1, g: 0, b: 0, a: 1} Color0: {r: 1, g: 0, b: 0, a: 1}
Color1: {r: 0, g: 1, b: 0, a: 1} Color1: {r: 0, g: 1, b: 0, a: 1}
Color2: {r: 0, g: 0, b: 1, a: 1} Color2: {r: 0, g: 0, b: 1, a: 1}
...@@ -883,29 +888,34 @@ GameObject: ...@@ -883,29 +888,34 @@ GameObject:
- component: {fileID: 1825649044} - component: {fileID: 1825649044}
- component: {fileID: 1825649043} - component: {fileID: 1825649043}
- component: {fileID: 1825649042} - component: {fileID: 1825649042}
- component: {fileID: 1825649041}
- component: {fileID: 1825649045} - component: {fileID: 1825649045}
- component: {fileID: 1825649041}
m_Layer: 0 m_Layer: 0
m_Name: Capsule m_Name: Capsule
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!136 &1825649041 --- !u!95 &1825649041
CapsuleCollider: Animator:
serializedVersion: 3
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1825649040} m_GameObject: {fileID: 1825649040}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1 m_Enabled: 1
m_Radius: 0.5 m_Avatar: {fileID: 0}
m_Height: 2 m_Controller: {fileID: 9100000, guid: 5a61133bba3c7154e9648343d9a914a0, type: 2}
m_Direction: 1 m_CullingMode: 0
m_Center: {x: 0, y: 0, z: 0} m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0
--- !u!23 &1825649042 --- !u!23 &1825649042
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -963,7 +973,7 @@ Transform: ...@@ -963,7 +973,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1825649040} m_GameObject: {fileID: 1825649040}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 1.75, y: -1, z: 9.2} m_LocalPosition: {x: 2, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 963210798} m_Father: {fileID: 963210798}
......
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 705507994}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 500
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 2
m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0
m_PVRDenoiserTypeAO: 0
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 0
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &705507993
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 705507995}
- component: {fileID: 705507994}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &705507994
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 705507993}
m_Enabled: 1
serializedVersion: 8
m_Type: 1
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 1
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &705507995
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 705507993}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &963194225
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 963194228}
- component: {fileID: 963194227}
- component: {fileID: 963194226}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &963194226
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 963194225}
m_Enabled: 1
--- !u!20 &963194227
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 963194225}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &963194228
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 963194225}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
...@@ -9,14 +9,12 @@ namespace URasterizer ...@@ -9,14 +9,12 @@ namespace URasterizer
{ {
Rasterizer _rasterizer; Rasterizer _rasterizer;
public RawImage rawImg; public RawImage rawImg;
public Color ClearColor = Color.black;
private List<RenderingObject> renderingObjects = new List<RenderingObject>(); private List<RenderingObject> renderingObjects = new List<RenderingObject>();
private Camera _camera; private Camera _camera;
public bool WireframeMode; public RenderingConfig _config;
private void Start() private void Start()
{ {
...@@ -44,11 +42,12 @@ namespace URasterizer ...@@ -44,11 +42,12 @@ namespace URasterizer
//手动设置的mesh //手动设置的mesh
{ {
//手动模型也使用左手系
var _mesh = new Mesh var _mesh = new Mesh
{ {
vertices = new Vector3[] { new Vector3(1f, 0f, -2f), new Vector3(0f, 2f, -2f), new Vector3(-1f, 0f, -2f), vertices = new Vector3[] { new Vector3(1f, 0f, 2f), new Vector3(0f, 2f, 2f), new Vector3(-1f, 0f, 2f),
new Vector3(1.5f, 0.5f, -1.5f), new Vector3(0.5f, 2.5f, -1.5f), new Vector3(-0.5f, 0.5f, -1.5f)}, new Vector3(1.5f, 0.5f, 1.5f), new Vector3(0.5f, 2.5f, 1.5f), new Vector3(-0.5f, 0.5f, 1.5f)},
triangles = new int[] { 0, 1, 2, 3, 4, 5 } triangles = new int[] { 0, 2, 1, 3, 5, 4 }
}; };
var go = new GameObject("_handmake_mesh_"); var go = new GameObject("_handmake_mesh_");
var ro = go.AddComponent<RenderingObject>(); var ro = go.AddComponent<RenderingObject>();
...@@ -65,9 +64,8 @@ namespace URasterizer ...@@ -65,9 +64,8 @@ namespace URasterizer
int h = Mathf.FloorToInt(rect.rect.height); int h = Mathf.FloorToInt(rect.rect.height);
Debug.Log($"screen size: {w}x{h}"); Debug.Log($"screen size: {w}x{h}");
_rasterizer = new Rasterizer(w, h); _rasterizer = new Rasterizer(w, h, _config);
rawImg.texture = _rasterizer.texture; rawImg.texture = _rasterizer.texture;
_rasterizer.ClearColor = ClearColor;
} }
...@@ -80,7 +78,7 @@ namespace URasterizer ...@@ -80,7 +78,7 @@ namespace URasterizer
{ {
if (renderingObjects[i].gameObject.activeInHierarchy) if (renderingObjects[i].gameObject.activeInHierarchy)
{ {
r.Draw(renderingObjects[i], _camera, WireframeMode); r.Draw(renderingObjects[i], _camera);
} }
} }
......
...@@ -15,7 +15,7 @@ namespace URasterizer ...@@ -15,7 +15,7 @@ namespace URasterizer
int _width; int _width;
int _height; int _height;
bool _MSAA; RenderingConfig _config;
Matrix4x4 _matModel; Matrix4x4 _matModel;
Matrix4x4 _matView; Matrix4x4 _matView;
...@@ -42,18 +42,18 @@ namespace URasterizer ...@@ -42,18 +42,18 @@ namespace URasterizer
Color[] frame_buf; Color[] frame_buf;
float[] depth_buf; float[] depth_buf;
public Texture2D texture; public Texture2D texture;
public Color ClearColor { get; set; }
//Stats //Stats
public int Stats_Triangles; public int Stats_Triangles;
public int Stats_Vertices; public int Stats_Vertices;
public Rasterizer(int w, int h) public Rasterizer(int w, int h, RenderingConfig config)
{ {
Debug.Log($"Rasterizer screen size: {w}x{h}"); Debug.Log($"Rasterizer screen size: {w}x{h}");
_config = config;
_width = w; _width = w;
_height = h; _height = h;
...@@ -98,7 +98,7 @@ namespace URasterizer ...@@ -98,7 +98,7 @@ namespace URasterizer
{ {
if((mask & BufferMask.Color) == BufferMask.Color) if((mask & BufferMask.Color) == BufferMask.Color)
{ {
FillArray(frame_buf, ClearColor); FillArray(frame_buf, _config.ClearColor);
} }
if((mask & BufferMask.Depth) == BufferMask.Depth) if((mask & BufferMask.Depth) == BufferMask.Depth)
{ {
...@@ -126,7 +126,7 @@ namespace URasterizer ...@@ -126,7 +126,7 @@ namespace URasterizer
} }
} }
public void Draw(RenderingObject ro, Camera camera, bool wireframeMode=false) public void Draw(RenderingObject ro, Camera camera)
{ {
Mesh mesh = ro.mesh; Mesh mesh = ro.mesh;
SetupViewProjectionMatrix(camera); SetupViewProjectionMatrix(camera);
...@@ -135,21 +135,26 @@ namespace URasterizer ...@@ -135,21 +135,26 @@ namespace URasterizer
Matrix4x4 mvp = _matProjection * _matView * _matModel; Matrix4x4 mvp = _matProjection * _matView * _matModel;
var indices = mesh.triangles; var indices = mesh.triangles;
for(int i=0; i< indices.Length; i+=3) for(int i=0; i< indices.Length; i+=3)
{ {
int idx0 = indices[i]; //Unity模型本地坐标系也是左手系,需要转成我们使用的右手系
int idx1 = indices[i+1]; //1. z轴反转
int idx2 = indices[i+2]; //2. 三角形顶点环绕方向从顺时针改成逆时针
int idx0 = indices[i];
int idx1 = indices[i+2]; //注意这儿对调了v1和v2的索引,因为原来的 0,1,2是顺时针的,对调后是 0,2,1,是逆时针的
int idx2 = indices[i+1];
//vertex shader //vertex shader
//world to clip space //world to clip space
Vector4[] v = Vector4[] v =
{ {
mvp * new Vector4(mesh.vertices[idx0].x, mesh.vertices[idx0].y, mesh.vertices[idx0].z, 1), mvp * new Vector4(mesh.vertices[idx0].x, mesh.vertices[idx0].y, -mesh.vertices[idx0].z, 1), //注意这儿反转了z坐标
mvp * new Vector4(mesh.vertices[idx1].x, mesh.vertices[idx1].y, mesh.vertices[idx1].z, 1), mvp * new Vector4(mesh.vertices[idx1].x, mesh.vertices[idx1].y, -mesh.vertices[idx1].z, 1),
mvp * new Vector4(mesh.vertices[idx2].x, mesh.vertices[idx2].y, mesh.vertices[idx2].z, 1), mvp * new Vector4(mesh.vertices[idx2].x, mesh.vertices[idx2].y, -mesh.vertices[idx2].z, 1),
}; };
...@@ -168,7 +173,7 @@ namespace URasterizer ...@@ -168,7 +173,7 @@ namespace URasterizer
} }
//backface culling //backface culling
if (!ro.DoubleSideRendering) if (_config.BackfaceCulling && !ro.DoubleSideRendering)
{ {
Vector3 v0 = new Vector3(v[0].x, v[0].y, v[0].z); Vector3 v0 = new Vector3(v[0].x, v[0].y, v[0].z);
Vector3 v1 = new Vector3(v[1].x, v[1].y, v[1].z); Vector3 v1 = new Vector3(v[1].x, v[1].y, v[1].z);
...@@ -208,7 +213,7 @@ namespace URasterizer ...@@ -208,7 +213,7 @@ namespace URasterizer
t.SetColor(2, ro.Color2); t.SetColor(2, ro.Color2);
//Rasterization //Rasterization
if (wireframeMode) if (_config.WireframeMode)
{ {
RasterizeWireframe(t); RasterizeWireframe(t);
} }
...@@ -394,11 +399,7 @@ namespace URasterizer ...@@ -394,11 +399,7 @@ namespace URasterizer
int maxPY = Mathf.CeilToInt(maxY); int maxPY = Mathf.CeilToInt(maxY);
maxPY = maxPY > _height ? _height : maxPY; maxPY = maxPY > _height ? _height : maxPY;
if (_MSAA)
{
}
else
{ {
// 遍历当前三角形包围中的所有像素,判断当前像素是否在三角形中 // 遍历当前三角形包围中的所有像素,判断当前像素是否在三角形中
// 对于在三角形中的像素,使用重心坐标插值得到深度值,并使用z buffer进行深度测试和写入 // 对于在三角形中的像素,使用重心坐标插值得到深度值,并使用z buffer进行深度测试和写入
...@@ -422,6 +423,7 @@ namespace URasterizer ...@@ -422,6 +423,7 @@ namespace URasterizer
if(z_interpolated <= depth_buf[index]) if(z_interpolated <= depth_buf[index])
{ {
depth_buf[index] = z_interpolated; depth_buf[index] = z_interpolated;
Color color_interpolated = alpha * t.Colors[0] / v[0].w + beta * t.Colors[1] / v[1].w + gamma * t.Colors[2] / v[2].w; Color color_interpolated = alpha * t.Colors[0] / v[0].w + beta * t.Colors[1] / v[1].w + gamma * t.Colors[2] / v[2].w;
color_interpolated *= w_reciprocal; color_interpolated *= w_reciprocal;
frame_buf[index] = color_interpolated; frame_buf[index] = color_interpolated;
...@@ -492,10 +494,6 @@ namespace URasterizer ...@@ -492,10 +494,6 @@ namespace URasterizer
public void UpdateFrame() public void UpdateFrame()
{ {
//SetPixel(new Vector3(0,0), Color.red);
//SetPixel(new Vector3(0, _height-1), Color.green);
texture.SetPixels(frame_buf); texture.SetPixels(frame_buf);
texture.Apply(); texture.Apply();
} }
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(menuName ="URasterizer/RenderingConfig")]
public class RenderingConfig : ScriptableObject
{
public Color ClearColor = Color.black;
public bool WireframeMode = false;
public bool BackfaceCulling = true;
public bool MSAA = false;
}
fileFormatVersion: 2
guid: d5fa123a60a768444af03a384cb34a74
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
...@@ -30,7 +30,7 @@ namespace URasterizer ...@@ -30,7 +30,7 @@ namespace URasterizer
var matScale = TransformTool.GetScaleMatrix(transform.lossyScale); var matScale = TransformTool.GetScaleMatrix(transform.lossyScale);
var rotation = transform.localRotation.eulerAngles; var rotation = transform.rotation.eulerAngles;
var rotX = TransformTool.GetRotationMatrix(Vector3.right, -rotation.x); var rotX = TransformTool.GetRotationMatrix(Vector3.right, -rotation.x);
var rotY = TransformTool.GetRotationMatrix(Vector3.up, -rotation.y); var rotY = TransformTool.GetRotationMatrix(Vector3.up, -rotation.y);
var rotZ = TransformTool.GetRotationMatrix(Vector3.forward, rotation.z); var rotZ = TransformTool.GetRotationMatrix(Vector3.forward, rotation.z);
......
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d5fa123a60a768444af03a384cb34a74, type: 3}
m_Name: RenderingConfig
m_EditorClassIdentifier:
ClearColor: {r: 0, g: 0.7450409, b: 1, a: 0.47058824}
WireframeMode: 0
BackfaceCulling: 1
MSAA: 0
fileFormatVersion: 2
guid: 18e833324d51d904aa0c708c8c56856c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
...@@ -6,10 +6,13 @@ EditorUserSettings: ...@@ -6,10 +6,13 @@ EditorUserSettings:
serializedVersion: 4 serializedVersion: 4
m_ConfigSettings: m_ConfigSettings:
RecentlyUsedScenePath-0: RecentlyUsedScenePath-0:
value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d value: 224247031146466e3f0f1f361531560a1305571f1e293524283b1429e7f2003df1f305eae2343a722c0ce6281d
flags: 0 flags: 0
RecentlyUsedScenePath-1: RecentlyUsedScenePath-1:
value: 224247031146466e3f0f1f361531560a1305571f1e293524283b1429e7f2003df1f305eae2343a722c0ce6281d value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d
flags: 0
RecentlyUsedScenePath-2:
value: 224247031146466e3f0f1f361531560a1305571f1e293524283b1429e7f2073be7e933a7f234362820
flags: 0 flags: 0
vcSharedLogLevel: vcSharedLogLevel:
value: 0d5e400f0650 value: 0d5e400f0650
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册