Learn how to use Rawteous Impostors with practical, hands-on tutorials. From basic setup to advanced optimization techniques.
Getting Started
New to Rawteous? Follow this tutorial to create your first impostor in minutes.
Step 1: Install Rawteous
Import the Rawteous Impostors package into your Unity project using ONE of these methods:
Method 1: Unity Asset Store (Recommended)
- Open Unity Package Manager (Window → Package Manager)
- Click the dropdown at the top and select "My Assets"
- Find "Rawteous Impostors" in your purchased assets
- Click "Download" (if not already downloaded)
- Click "Import" to add it to your project
Method 2: Manual Package Import (Direct Purchase/Custom Build)
- Open Unity Package Manager (Window → Package Manager)
- Click the "+" button and select "Add package from disk"
- Navigate to the Rawteous Impostors package folder
- Select the
package.jsonfile - Unity will import the package
- Click the three-dot menu (⋮) in the top-right corner of the Scene View
- Select Overlay Menu
- Ensure "Enable Overlays" is checked
- Expand the Custom section
- Check the "RawteousImpostors" checkbox
Step 2: Select a 3D Object
Select any GameObject in your scene that you want to convert to an impostor. This can be:
- A character model
- A prop or decoration
- A building or structure
- Any 3D object with a mesh renderer
Step 3: Add the Rawteous Component
With your GameObject selected, add the impostor component using ONE of these methods:
Method 1: Unity Menu Bar
- Go to Tools → Rawteous → Create Impostor
Method 2: Scene View Overlay (Recommended)
- Look at the top-right of the Scene view for the RawteousImpostors overlay toolbar
- Click the box icon (Create Impostor) button
The Rawteous Impostors component will appear in the Inspector with default settings.
Step 4: Understanding the Inspector
The Rawteous Inspector is organized into collapsible sections. Here are the KEY sections:
📸 IMPOSTOR Settings (Main Controls)
- Capture Distribution: Grid (captures in a grid pattern) - keep default for now
- Azimuth: 8 (horizontal angles around the object - slider shows 2 to 8+)
- Elevation: 3 (vertical angles - slider shows 1 to 3+)
- Hemisphere Only: Checked (captures only top half - good for most objects)
⚙️ QUALITY Section
- Texture Resolution: 256 or 512 (slider shows power-of-2 values: 64, 128, 256, 512, 1024)
- Super-Sample: 2x (renders at higher res then downscales for better quality)
- Filter: 1 (Lanczos - best quality downscaling filter)
📷 CAPTURE Section
- Capture Padding: 0.25 (adds padding around captured object)
• Azimuth: 8
• Elevation: 3
• Texture Resolution: 256-512
• Hemisphere Only: Checked
These work well for most objects. Adjust based on your needs.
Step 5: Generate Your Impostor
Click the "Regenerate" button in the Inspector. Rawteous will:
- Capture the object from multiple angles
- Create impostor texture atlases
- Generate an optimized billboard mesh
- Set up the billboard to face the camera automatically
Step 6: Test Your Impostor
Enter Play mode and move your camera around the object. You should see:
- The impostor automatically switching between captured angles
- Smooth transitions as you rotate around the object
- Significantly better performance compared to the original mesh
Batch Operations
Converting multiple objects to impostors at once for efficient workflows.
Adding Components to Multiple Objects
To add the Rawteous component to multiple objects:
- Select multiple GameObjects in the Hierarchy (hold Ctrl/Cmd to multi-select)
- Go to Tools → Rawteous → Create Impostor (OR use the overlay Create button)
- The component will be added to ALL selected objects with valid meshes
Regenerating All Impostors (Capture All)
To regenerate ALL impostors in the scene at once:
Method 1: Scene View Overlay (Recommended)
- Look at the RawteousImpostors overlay toolbar in the Scene view
- Click the clapperboard icon (Regenerate All) button
- All impostors will be queued and processed sequentially
Watch the Queue Window to monitor batch progress. The window shows:
- Current impostor being processed
- Remaining items in queue
- Progress per impostor (captures and texture maps)
- Option to cancel batch operation
Leadership System (Advanced Batch)
For large scenes with many similar objects, use the Leadership system to share settings. There are MULTIPLE ways to set up leadership:
Method 1: Drag-and-Drop (Easiest)
- Select the object you want to be a Follower
- In the Inspector, look for the Leader field at the top
- Drag and drop the Leader GameObject from the Hierarchy into the Leader field
- The Follower will instantly inherit all settings from the Leader
Method 2: Menu Selection (Batch)
- Select multiple objects with Rawteous components
- Go to Tools → Rawteous → Set Leadership from Selection
- The last-selected object becomes the "Leader"
- All other objects become "Followers" and inherit the Leader's settings
Method 3: Auto Leadership (Smart Batch)
- Select multiple objects with Rawteous components
- Go to Tools → Rawteous → Auto Leadership from Selection
- Rawteous automatically groups objects by size
- Assigns appropriate resolutions based on object dimensions
- Creates leaders for each size group
How Leadership Works:
- When you modify the Leader's settings, all Followers automatically update
- Followers can't modify locked parameters (they inherit from Leader)
- You can unlock specific parameter groups on Followers if needed
- Keeps settings synchronized across many objects
Performance Optimization
Learn how to optimize your impostors for the best performance without sacrificing visual quality.
Understanding Resolution vs. Performance
The texture resolution directly affects both quality and memory usage:
- Low (64-128): Best for small objects, distant props, or mobile games
- Medium (256-512): Good balance for most use cases
- High (1024-2048): Best for main characters or hero assets
Optimizing Capture Steps
Fewer captures mean faster generation and smaller atlases:
- Azimuth: 4-8 angles work well for most objects (horizontal rotation)
- Elevation: 2-3 elevations are usually sufficient (vertical angles)
Optimizing for Mobile
Mobile platforms require special considerations:
- Use lower Texture Resolution (128-256)
- Reduce Azimuth (4-6) and Elevation (2)
- Disable Super-Sample or set to 0 (no super-sampling)
- Test on actual devices, not just the editor
- Monitor texture memory usage
Cast Shadow Meshes
Generate optimized shadow casting meshes from impostor silhouettes for better performance.
What is Cast?
Cast generates simplified 3D meshes based on your impostor's silhouette. These meshes are used for:
- Shadow Casting: Optimized geometry casts realistic shadows without the complexity of the original mesh
- Better Performance: Simpler mesh = faster shadow rendering
- Accurate Silhouettes: Extracted from actual captured angles for correct shadow shapes
Enabling Cast Mesh Generation
To enable Cast for your impostor:
- Select your GameObject with the Rawteous component
- In the Inspector, expand the 📐 CAST section
- Check the "Cast Enabled" checkbox
- Configure the Cast parameters (see below)
- Click Regenerate to generate the impostor with Cast meshes
Cast Parameters
Configure how Cast meshes are generated:
Cast Threshold (0.01-1.0)
- Controls silhouette detection sensitivity
- Lower values (0.1-0.3): Tighter mesh, follows silhouette closely
- Higher values (0.5-0.8): Looser mesh, more padding around silhouette
- Default: 0.5 works well for most objects
Cast Dilation (0-100)
- Expands the cast mesh outward from the silhouette
- Lower values (0-20): Minimal expansion, tight fit
- Higher values (50-100): More expansion, softer shadows
- Default: 32 provides good shadow coverage
Point Reduction (Epsilon)
- Simplifies the cast mesh by reducing contour points
- Lower values: More detail, more vertices
- Higher values: Simpler mesh, fewer vertices
- Default: 32 balances quality and performance
Cast Mesh Modes
Choose how Cast meshes are generated:
Per Angle (Recommended)
- Generates a separate Cast mesh for each capture angle
- Most accurate shadows from all viewing directions
- Switches meshes automatically based on camera view
- Best for objects viewed from multiple angles
Single Mesh
- Generates one unified Cast mesh for all angles
- Lower memory usage
- Good for objects viewed from limited angles
- Faster, but less accurate from some viewpoints
When to Use Cast
✅ USE Cast for:
- Trees, foliage, and vegetation (important shadows)
- Characters and creatures (accurate silhouettes)
- Buildings and structures (architectural shadows)
- Objects where shadow shape is important for gameplay
❌ SKIP Cast for:
- Small props with minimal shadow impact
- Distant objects where shadows aren't visible
- Objects that don't cast shadows
- Mobile projects where every optimization counts
Previewing Cast Meshes
To visualize Cast meshes in the Inspector:
- Expand the 📐 CAST section
- After generation, you'll see a preview window
- Use the Preview Tile slider to view different angles
- The preview shows the extracted contour and resulting mesh
Decimator LOD Generator
Automatically generate multiple LOD (Level of Detail) levels from your impostor billboard mesh.
What is the Decimator?
The Decimator is an automatic LOD generator that creates simplified versions of your impostor billboard mesh:
- Automatic LOD Levels: Generates multiple LOD meshes with progressive simplification
- Smart Reduction: Uses quadric error metrics to preserve mesh shape while reducing triangles
- UV Preservation: Option to preserve UV borders to prevent texture seam issues
- Unity LOD Integration: Automatically creates LOD Groups and assigns LOD levels
Enabling the Decimator
To enable LOD generation for your impostor:
- Select your GameObject with the Rawteous component
- In the Inspector, expand the 🔺 LOD GENERATOR section
- Check the "Decimator Mode" toggle at the top
- Configure LOD settings (see below)
- Click Regenerate to generate the impostor with LOD levels
Decimator Parameters
Configure how LOD levels are generated:
LOD Count (1-8)
- Number of LOD levels to generate
- Default: 3 (good balance for most cases)
- LOD0 = original, LOD1 = first reduction, LOD2 = more reduced, etc.
- More LODs = smoother distance transitions but more memory
Reduction % (10-95%)
- Percentage of vertices to remove at EACH LOD level
- Lower values (10-30%): Gradual reduction, subtle transitions
- Medium values (40-60%): Balanced reduction (recommended)
- Higher values (70-95%): Aggressive reduction, obvious transitions
- Default: 50% (halves vertices at each level)
Preserve UVs (Checkbox)
- When checked: Preserves UV borders during simplification
- Prevents texture seam issues on simplified meshes
- Recommended: Keep ENABLED for impostors to avoid texture problems
Apply to Prefab (Checkbox)
- Automatically creates LODGroup component and assigns LOD levels
- Sets up distance-based LOD switching
- Enable if you want automatic LOD management
- Disable if you want to manually control LOD switching
How LOD Reduction Works
The Decimator progressively reduces triangles at each level:
- LOD0: Original billboard mesh (100% triangles)
- LOD1: 50% reduction → 50% of original triangles
- LOD2: 50% of LOD1 → 25% of original triangles
- LOD3: 50% of LOD2 → 12.5% of original triangles
Example with 50% reduction per level: If original has 1000 triangles → LOD0: 1000, LOD1: 500, LOD2: 250, LOD3: 125
Previewing LOD Levels
After generation, you can preview each LOD level:
- In the LOD GENERATOR section, generated LODs appear as previews
- Each LOD shows triangle count and reduction statistics
- Wireframe preview shows mesh density at each level
- Use Scene View to see LODs switching based on distance
When to Use Decimator
✅ USE Decimator for:
- Open-world games with long view distances
- Scenes with many impostors visible simultaneously
- Objects that need to pop in from very far away
- Performance-critical projects where every triangle counts
❌ SKIP Decimator for:
- Impostors that are already very simple (few triangles)
- Objects only viewed at close range
- Mobile projects where texture memory is more critical than geometry
- Scenes with few impostors where LODs add unnecessary complexity
Troubleshooting Decimator
Problem: LODs look broken or have holes
- ✅ Enable "Preserve UVs" to prevent UV seam issues
- ✅ Lower the Reduction % (try 30-40% instead of 50%)
- ✅ Reduce LOD Count (use 2-3 instead of 5+)
Problem: LODs transition too abruptly
- ✅ Lower the Reduction % for more gradual changes
- ✅ Increase LOD Count for smoother transitions
- ✅ Adjust LOD Group distances in the Unity LODGroup component
Problem: No performance improvement
- ✅ Check that "Apply to Prefab" is enabled
- ✅ Verify LODGroup component is created and active
- ✅ Use Unity's LOD Group debug view to confirm LODs are switching
- ✅ Ensure original billboard mesh has enough triangles to benefit from reduction
Advanced Features
Take your impostor skills to the next level with these advanced features.
Debug Visualization
The Debug popup provides powerful visualization tools:
- Click the framer icon in the Scene View overlay to open the Debug popup
- Toggle visualization options:
- Bounds: Shows source object bounding box
- Frame: Shows billboard bounds
- Wireframe: Shows billboard mesh geometry
- Cameras: Shows capture camera positions
- Leadership: Shows leader-follower connections
- Adjust Gizmo Opacity slider for better visibility
Queue Management
The Queue Window provides full control over batch operations:
- View Queue: Tools → Rawteous → Show Queue Status
- Monitor Progress: See current item, remaining items, and per-item progress
- Cancel Operations: Stop current capture or clear entire queue
The queue processes impostors sequentially to avoid overwhelming the editor and provides accurate progress tracking.
Runtime Generation (API)
Generate impostors at runtime for dynamic content:
using RawteousImpostors.Runtime;
// Add component at runtime
var impostor = gameObject.AddComponent<RawteousImpostors>();
// Configure settings (using internal property names)
impostor.settings.textureResolution = 512;
impostor.settings.captureAngles = 8; // Inspector shows as "Azimuth"
impostor.settings.captureElevations = 3; // Inspector shows as "Elevation"
// Generate impostor
impostor.Regenerate();
Troubleshooting
Common issues and how to fix them.
Impostor Looks Blurry
Problem: The impostor texture appears low-quality or blurry.
Solutions:
- Increase Texture Resolution (try 512 or 1024)
- Increase Super-Sample (try 2x or 3x for better quality)
- Adjust Capture Padding to better frame the object
- Ensure the original mesh has good detail
- Verify texture import settings aren't downscaling
Visible Popping Between Angles
Problem: You can see the impostor switching between captured angles.
Solutions:
- Increase Azimuth and Elevation values in the Inspector
- Change Impostor Mode to "Smooth Blending" (if using Texture-Based mode)
- Adjust Capture Padding to better frame the object
Impostor Not Generating
Problem: Clicking "Regenerate" doesn't create an impostor.
Solutions:
- Ensure the GameObject has a MeshRenderer or SkinnedMeshRenderer
- Check that the source object is assigned correctly
- Verify the object has valid geometry (non-zero bounds)
- Check the Unity Console for error messages
- Try clearing the capture material cache: Tools → Rawteous → Clear Capture Material Cache
Performance Issues
Problem: Game runs slower after adding impostors.
Solutions:
- Reduce Texture Resolution (try 256 or lower)
- Decrease Azimuth and Elevation values
- Reduce Super-Sample (try 0 or 1)
- Limit the number of impostors visible at once
- Profile texture memory usage
- Consider LOD systems for distance-based switching
Strange Material Rendering
Problem: Materials show debug colors or incorrect shading.
Solutions:
- Go to Tools → Rawteous → Disable Unity Debug Mode
- Check Scene View shading mode (should be "Shaded", not "Wireframe" or debug modes)
- Verify your render pipeline is set up correctly (URP/HDRP/Built-in)
Next Steps
Now that you've completed the tutorials, here's what to explore next:
- Read the full documentation for detailed parameter explanations
- Check the API reference for programmatic control
- Experiment with the Leadership system for managing large scenes
- Explore the Debug visualization tools to understand how impostors work
- Test different settings to find what works best for your project