Skip to content

suhang12332/Minecraft-Skin-Render

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

SkinRender

SkinRender 是一个基于 SwiftUI + Metal 的 macOS 应用,用于 3D 模型的皮肤渲染和预览。你可以通过界面选择不同皮肤,实时查看模型贴图效果,并支持缩放、旋转等交互操作。

功能特性

  • 支持 OBJ 格式 3D 模型加载(默认 model.obj)。
  • 支持多皮肤贴图切换(通过 Segmented Picker)。
  • Metal 实时渲染,支持缩放、旋转(鼠标拖拽/滚轮/触控板)。
  • 皮肤贴图资源管理简单,直接放入 Assets.xcassets

目录结构

SkinRender/
├── ContentView.swift         // SwiftUI 主界面,皮肤选择与渲染视图
├── MetalView.swift           // Metal 渲染视图与交互
├── MetalRenderer.swift       // Metal 渲染核心逻辑
├── SimpleOBJLoader.swift     // 简单 OBJ 文件解析
├── Shaders.metal             // Metal 着色器
├── model.obj                 // 默认 3D 模型
├── Assets.xcassets/          // 皮肤贴图与资源
│   ├── skin1.imageset/
│   ├── skin2.imageset/
│   ├── skin3.imageset/
│   └── ...
└── SkinRenderApp.swift       // App 入口

依赖环境

  • macOS 13+
  • Xcode 15+
  • Swift 5.9+
  • Metal 支持的 Mac 设备

构建与运行

  1. 使用 Xcode 打开 SkinRender.xcodeproj
  2. 选择目标设备(Mac)。
  3. 点击运行(Run)即可。

皮肤贴图的添加与管理

  • 皮肤贴图需放在 Assets.xcassets 目录下,每个皮肤一个 imageset,命名如 skin1skin2skin3
  • 每个 imageset 下放置对应的 PNG 图片(如 skin1.png),并在 Contents.json 中配置。
  • ContentView.swiftskins 数组中添加皮肤名即可出现在界面选择中。

更换/添加 3D 模型

  • 默认模型为 SkinRender/model.obj,需为标准 OBJ 格式。
  • 替换此文件即可加载新模型(无需修改代码)。
  • 模型需带有 UV 坐标,贴图才能正确显示。

交互说明

  • 拖拽鼠标:旋转模型
  • 滚轮/触控板缩放:缩放模型
  • 选择皮肤:切换不同贴图实时预览

主要代码结构说明

  • MetalViewModel:负责皮肤名、缩放、旋转等状态管理
  • MetalRenderer:负责模型加载、贴图切换、渲染流程
  • SimpleOBJLoader:简单 OBJ 文件解析,自动居中和缩放模型
  • Shaders.metal:顶点/片元着色器,支持透明像素剔除

许可

本项目仅供学习和个人使用,欢迎二次开发和改进。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published