Skip to content

Instantly share code, notes, and snippets.

View Matt54's full-sized avatar

Matt Pfeiffer Matt54

View GitHub Profile
@Matt54
Matt54 / TileFloorSinglePlaneRealityView.swift
Created September 5, 2024 00:59
RealityView creating floor tile pattern using scale of textureCoordinateTransform
import SwiftUI
import RealityKit
#Preview("TileFloorSinglePlaneRealityView") {
TileFloorSinglePlaneRealityView()
}
struct TileFloorSinglePlaneRealityView: View {
var body: some View {
let gridSize = 1
@Matt54
Matt54 / TileFloorRealityView.swift
Created September 4, 2024 02:45
Texture grid RealityView
import SwiftUI
import RealityKit
// Volume example
struct TileFloorRealityView: View {
let gridSize = 8
var body: some View {
GeometryReader3D { proxy in
RealityView { content in
@Matt54
Matt54 / PhysicallyBasedMaterialPickerView2.swift
Created September 1, 2024 04:45
RealityView for testing the various properties of PhysicallyBasedMaterial
import RealityKit
import SwiftUI
struct PhysicallyBasedMaterialPickerView2: View {
@State var entity: ModelEntity?
@State var baseColorTextureResource: TextureResource?
@State var materialParameters: PhysicallyBasedMaterialParameters = PhysicallyBasedMaterialParameters()
var body: some View {
RealityView { content in
@Matt54
Matt54 / PhysicallyBasedMaterialPickerView.swift
Created August 30, 2024 03:07
RealityView for visualizing the different properties of PhysicallyBasedMaterial
import RealityKit
import SwiftUI
struct PhysicallyBasedMaterialPickerView: View {
@State var entity: ModelEntity?
@State var materialParameters: PhysicallyBasedMaterialParameters = PhysicallyBasedMaterialParameters()
func generateEntity() -> ModelEntity {
let meshResource = MeshResource.generateSphere(radius: 0.2)
return ModelEntity(mesh: meshResource, materials: [getMaterial()])
@Matt54
Matt54 / LowLevelMeshRevealView.swift
Created August 26, 2024 00:10
RealityView loading a USDZ model, extracting a LowLevelMesh from it, and then animating a warp reveal of it's vertices
import SwiftUI
import RealityKit
import Metal
struct LowLevelMeshRevealView: View {
@State var entity: ModelEntity?
@State var lowLevelMesh: LowLevelMesh?
@State var originalVertices: [VertexData] = []
@State var timer: Timer?
@State var isForward: Bool = true
@Matt54
Matt54 / ModelUVTextureRealityView.swift
Created August 25, 2024 13:53
RealityView loading a USDZ model and visualizing the UV coordinates with a LowLevelTexture
import SwiftUI
import RealityKit
import MetalKit
struct ModelUVTextureRealityView: View {
@State var entity: ModelEntity?
@State var texture: LowLevelTexture?
let device: MTLDevice
let commandQueue: MTLCommandQueue
let textureComputePipeline: MTLComputePipelineState
@Matt54
Matt54 / AdjustModelTextureRealityView.swift
Created August 24, 2024 21:00
RealityView loading USDZ file and copying it's TextureResource into a LowLevelTexture for animation using metal
import SwiftUI
import RealityKit
import MetalKit
struct AdjustModelTextureRealityView: View {
@State var entity: ModelEntity?
@State var originalTexture: LowLevelTexture?
@State var fadedTexture: LowLevelTexture?
@State var fadeValue: Float = 0.0
@State var timer: Timer?
@Matt54
Matt54 / DownloadModelRealityView.swift
Created August 23, 2024 00:26
RealityView created by downloading USDZ file to create ModelEntity and then swapping it's material for PhysicallyBasedMaterial
import RealityKit
import SwiftUI
struct DownloadModelRealityView: View {
@State var rotationAngle: Float = 0
@State var timer: Timer?
let url = URL(string: "https://matt54.github.io/Resources/StatueOfBuddha.usdz")!
var body: some View {
RealityView { content in
@Matt54
Matt54 / OuterSpaceCeilingPortalView.swift
Created August 21, 2024 04:51
RealityKit ceiling portal view with outer space skybox
import ARKit
import RealityKit
import SwiftUI
struct OuterSpaceCeilingPortalView: View {
@State var detectionTimer: Timer?
@State var portalEntity: Entity?
@State var maxRadius: Float = 0
@State var portalTransform: simd_float4x4?
@State var animationTimer: Timer?
@Matt54
Matt54 / ImagePlaneView.swift
Created August 16, 2024 04:47
Feathering effect applied to an image on a Window and also a RealityView
import SwiftUI
import RealityKit
#Preview("Window View") {
ImagePlaneView()
}
#Preview("RealityView") {
ImagePlaneRealityView()
}