arkavo-org / arkavo-org/VRMMetalKit

Add runtime material property overrides for enhanced rendering

Open
#44 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Swift
Stars
6
Forks
2
Avg merge
18h 51m
Merged PRs (30d)
26

Description

## Description

Currently, MToon material properties are loaded from the VRM file and cannot be modified at runtime. This limits the ability to:
- Enhance skin shading for better appearance
- Add specular highlights to hair
- Adjust shadow softness for different lighting conditions

## Proposed Solution

Add material override system:

```swift
public enum MaterialType {
case skin, hair, eyes, clothing, other
}

public struct MaterialOverride {
var shadingToonyFactor: Float? // 0.0 = hard cel, 1.0 = soft gradient
var shadeMultiply: SIMD3? // Darken shadow regions
var specularIntensity: Float? // Add specular highlights
var rimLightIntensity: Float? // Edge highlighting
}

public func applyMaterialOverride(type: MaterialType, override: MaterialOverride)
public func detectMaterialType(for nodeName: String) -> MaterialType
```

## Use Case

- VTuber apps need to optimize appearance across different models
- Skin shader preset: softer shadows, subtle SSS emulation
- Hair shader preset: specular highlights, reduced banding
- Eyes shader preset: increased emission, sharper reflections

## Benefits

- Better visual quality without re-exporting VRM files
- Per-material-type presets for consistent look
- Optional - doesn't affect existing materials

## Priority

**MEDIUM** - Advanced customization for professional applications

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by locating the MToon material-loading and rendering entry points, then determine how the proposed MaterialType and MaterialOverride APIs should integrate with them. Done means optional runtime, per-material-type overrides for the listed properties without changing existing materials.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.