بنقرة واحدة
dev-performance-instancing
Instanced rendering for repeated objects in R3F. Use when rendering many identical objects.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Instanced rendering for repeated objects in R3F. Use when rendering many identical objects.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Complete Developer workflow orchestration - task research sequence, implementation flow, validation gates, PRD synchronization, exit conditions.
Complete Game Designer workflow - skill invocation protocol, GDD creation, playtest flow with GDD review, design sessions. MUST load before starting assignments.
Complete PM Coordinator workflow - task assignment, project orchestration, PRD management, worker coordination. Use proactively when starting PM agent work.
Complete PM Coordinator workflow - task assignment, project orchestration, PRD management, worker coordination. Use proactively when starting PM agent work.
Complete QA Validator workflow orchestration. References specialized skills for each validation step. Load at session startup for full protocol.
Base instructions and guidelines for all agents in the system. This skill provides foundational behaviors and communication protocols that all agents should follow.
استنادا إلى تصنيف SOC المهني
| name | dev-performance-instancing |
| description | Instanced rendering for repeated objects in R3F. Use when rendering many identical objects. |
| category | performance |
Render thousands of identical objects with a single draw call.
Use when:
import { Instances, Instance } from '@react-three/drei';
// Instead of 1000 separate meshes
function OptimizedTrees({ positions }) {
return (
<Instances limit={positions.length}>
<cylinderGeometry args={[0.1, 0.3, 2]} />
<meshStandardMaterial color="brown" />
{positions.map((pos, i) => (
<Instance key={i} position={pos} />
))}
</Instances>
);
}
| Approach | Objects | Draw Calls | FPS |
|---|---|---|---|
| Individual meshes | 1000 | 1000 | 15 |
| Instanced | 1000 | 1 | 60 |
import { Instances, Instance } from '@react-three/drei';
function DynamicParticles({ count = 100 }) {
const particles = useRef<Array<{ x: number; y: number; z: number }>>([]);
// Initialize particles
useMemo(() => {
for (let i = 0; i < count; i++) {
particles.current.push({
x: (Math.random() - 0.5) * 10,
y: (Math.random() - 0.5) * 10,
z: (Math.random() - 0.5) * 10,
});
}
}, [count]);
return (
<Instances limit={count}>
<sphereGeometry args={[0.1, 8, 8]} />
<meshBasicMaterial color="orange" />
{particles.current.map((pos, i) => (
<Instance key={i} position={[pos.x, pos.y, pos.z]} />
))}
</Instances>
);
}
function ColoredInstances() {
const colors = useMemo(() =>
Array.from({ length: 100 }, () => ({
color: new THREE.Color(Math.random(), Math.random(), Math.random()),
}))
, []);
return (
<Instances limit={100}>
<boxGeometry args={[1, 1, 1]} />
<meshStandardMaterial />
{colors.map((props, i) => (
<Instance
key={i}
position={[(i % 10) * 1.2, Math.floor(i / 10) * 1.2, 0]}
color={props.color}
/>
))}
</Instances>
);
}
| ❌ Can't | ✅ Alternative |
|---|---|
| Different geometries per instance | Use separate Instances groups |
| Different materials per instance | Use vertex colors or textures |
| Complex animations per instance | Use shader-based animation |
| ❌ Wrong | ✅ Right |
|---|---|
| Using individual meshes for repeated objects | Use Instances |
| Not setting limit prop | Always set limit higher than max count |
| Creating new Instance objects every frame | Use stable key, update position prop |