-
Transfira projetos do SceneKit para o RealityKit
Saiba mais sobre a descontinuidade do SceneKit e descubra como fazer a transição de seus projetos 3D para o RealityKit, o mecanismo 3D avançado recomendado pela Apple. Vamos esclarecer o que a descontinuidade do SceneKit significa para seus projetos, comparar conceitos importantes dos dois mecanismos e mostrar como fazer a portabilidade de um jogo de exemplo do SceneKit para o RealityKit. Também exploraremos o potencial do RealityKit em todas as plataformas compatíveis para ajudar você a criar experiências 3D incríveis em seus apps e jogos.
Capítulos
- 0:00 - Começar
- 5:03 - Principais diferenças
- 8:59 - Conversão de assets
- 11:57 - Composição de cenas
- 15:21 - Animações
- 16:58 - Iluminação
- 18:37 - Áudio
- 21:19 - Efeitos visuais
Recursos
Vídeos relacionados
WWDC25
WWDC24
- Compose interactive 3D content in Reality Composer Pro
- Enhance your spatial computing app with RealityKit audio
WWDC23
-
Buscar neste vídeo...
-
-
16:33 - Animations in RealityKit
// RealityKit guard let max = scene.findEntity(named: "Max") else { return } guard let library = max.components[AnimationLibraryComponent.self], let spinAnimation = library.animations["spin"] else { return } max.playAnimation(spinAnimation) -
18:18 - Directional Light Component in RealityKit
// RealityKit let lightEntity = Entity(components: DirectionalLightComponent(), DirectionalLightComponent.Shadow() ) -
24:37 - Create Bloom effect using RealityKit Post processing API
final class BloomPostProcess: PostProcessEffect { let bloomThreshold: Float = 0.5 let bloomBlurRadius: Float = 15.0 func postProcess(context: borrowing PostProcessEffectContext<any MTLCommandBuffer>) { // Create metal texture of the same format as 'context.sourceColorTexture'. var bloomTexture = ... // Write brightest parts of 'context.sourceColorTexture' to 'bloomTexture' // using 'MPSImageThresholdToZero'. // Blur 'bloomTexture' in-place using 'MPSImageGaussianBlur'. // Combine original 'context.sourceColorTexture' and 'bloomTexture' // using 'MPSImageAdd', and write to 'context.targetColorTexture'. } } // RealityKit content.renderingEffects.customPostProcessing = .effect( BloomPostProcess() )
-
-
- 0:00 - Começar
A Apple está oficialmente descontinuando o SceneKit em todas as plataformas. Os apps e jogos do SceneKit continuarão funcionando, mas receberão apenas correções de bugs críticos no futuro. Recomenda-se que os desenvolvedores usem o RealityKit, um mecanismo de 3D moderno e eficiente que potencializa o SwiftUI e é compatível com visionOS, iOS, macOS, iPadOS e, agora, tvOS.
- 5:03 - Principais diferenças
O SceneKit e o RealityKit são mecanismos de renderização em 3D da Apple. O SceneKit é baseado em nós, com propriedades para geometria, animações, áudio, física e luzes. O RealityKit usa o Entity Component System (ECS), em que as entidades são modificadas pela adição de componentes. Ambos os mecanismos usam o mesmo sistema de coordenadas destro. O SceneKit usa arquivos SCN proprietários, enquanto o RealityKit emprega o USD, um padrão de mercado aberto.
- 8:59 - Conversão de assets
Ao fazer a transição para o RealityKit, considere a arquitetura, os sistemas de coordenadas, o suporte a assets e as visualizações. Os assets, em especial os modelos 3D, precisam ser convertidos do formato SCN para USD. A melhor opção é exportar diretamente da ferramenta DCC original, como o Blender. Se os arquivos originais não estiverem disponíveis, o Xcode oferece uma função de exportação, mas os resultados possam variar. Para animações em arquivos SCN separados, a CLI da ferramenta SCN fornecida com o Xcode 26 pode ser usada para converter e acrescentar animações a arquivos USDZ.
- 11:57 - Composição de cenas
O Reality Composer Pro, uma ferramenta incluída no Xcode, facilita a composição de cenas para projetos do visionOS. Ele permite que os usuários importem assets em USD, organizem entidades, editem materiais, shaders e luzes e preparem cenas para o Xcode.
- 15:21 - Animações
Veja como animar o personagem 3D Max, do SceneKit, no RealityKit. Depois de converter o Max para um arquivo USD com animações, o exemplo acessa essas animações por meio do AnimationLibraryComponent no Reality Composer Pro. Isso simplifica o processo em comparação com a versão anterior do SceneKit, onde as animações precisavam ser carregadas e gerenciadas separadamente. Agora, é fácil encontrar a entidade Max, selecionar a animação desejada pelo nome e reproduzi-la no app.
- 16:58 - Iluminação
A iluminação no Reality Composer Pro é uma ferramenta poderosa que pode melhorar o realismo e o clima em uma cena. Usando o app, é possível adicionar luzes direcionais, ajustar sua orientação e ativar sombras para criar profundidade e dimensão. O processo é semelhante no SceneKit e no RealityKit. O RealityKit oferece vários tipos de luz, incluindo luzes de ponto, holofote e baseadas em imagem.
- 18:37 - Áudio
O projeto SceneKit aumenta o engajamento do jogo ao adicionar áudio ambiente. Ele carrega um arquivo de áudio como fonte, configura-o para reproduzir em loop de forma não espacial e o anexa ao nó de terreno. No RealityKit, o processo é semelhante: anexe um AudioLibraryComponent à entidade do terreno e adicione um componente de áudio ambiente para desativar o áudio posicional. Para otimizar o uso da memória, defina o áudio para transmissão.
- 21:19 - Efeitos visuais
Esta última seção aborda como usar efeitos visuais no RealityKit à medida que você traz o projeto do SceneKit. O exemplo começa mostrando como criar efeitos de partículas no Reality Composer Pro, usando um arquivo USD chamado 'volcano_smoke'. O desenvolvedor compara os ajustes do Reality Composer Pro com os do SceneKit, permitindo que eles obtenham um efeito semelhante à fumaça de vulcão no RealityKit. O exemplo passa, então, para o pós-processamento, que adiciona os retoques finais à saída renderizada. Na versão original do jogo no SceneKit, um efeito de bloom foi usado para criar um brilho suave e radiante ao redor de luzes intensas. Embora o RealityKit não tenha uma propriedade simples para esse efeito, agora é possível adicionar efeitos de pós-processamento ao RealityViews usando a API de pós-processamento. O exemplo cria um efeito de bloom personalizado ao extrair realces, desfocá-los e compô-los de volta à textura original. Esse efeito melhora o ambiente do jogo, tornando-o mais vibrante. Demonstra-se, então, o jogo rodando-o em várias plataformas da Apple, incluindo iOS, iPadOS, macOS e tvOS, mostrando os recursos multiplataforma do RealityKit.