# react-three-gpu-pathtracer
**Repository Path**: mirrors_pmndrs/react-three-gpu-pathtracer
## Basic Information
- **Project Name**: react-three-gpu-pathtracer
- **Description**: ⚡️ A React abstraction for the popular three-gpu-pathtracer
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-05-12
- **Last Updated**: 2026-02-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
react-three-gpu-pathtracer
This demo is real, you can click it! It contains full code, too. 📦
GameBoy model by
(@kleingeo)
on Sketchfab
. GameBoy Cartridge by
(@MeBob)
on Sketchfab
.
`react-three-gpu-pathtracer` lets you render your `react-three-fiber` scenes using Path Tracing! It is as simple as
```jsx
import { Pathtracer } from "@react-three/gpu-pathtracer";
function GradientSphere() {
return (
);
}
```
The `` component wraps your scene. The scene is then rendered using Path Tracing.
#### Props
| Prop | Type | Default | Description |
| ------------ | ---------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------- |
| `minSamples` | `number` | `1` | Default: 5. Min number of samples before blending the base scene with the pathtraced one. |
| `samples` | `number` | `1` | Max number of samples before the pathtracer stops. |
| `frames` | `number` | `Infinity` | Number of frames to path trace. Will pause rendering once this number is reached. |
| `tiles` | `[number, number] / THREE.Vector2 / { x: number; y: number } / number` | `2` | Number of tiles. Can be used to improve the responsiveness of a page while still rendering a high resolution target. |
| `bounces` | `number` | `1` | The number of ray bounces to test. Higher is better quality but slower performance. |
| `enabled` | `boolean` | `true` | Wether to enable pathtracing. |
### Env maps
Env maps can be added using [Drei's ``](https://github.com/pmndrs/drei#environment) component just like in a regular scene.
```jsx
```
### `usePathtracer`
This hook provides access to useful functions in the internal renderer. Can only be used within the `` component.
```ts
const { renderer, update, reset } = usePathtracer();
```
| Return value | Type | Description |
| -------------- | ----------------- | ------------------------------------------------------------------------------------------- |
| `pathtracer` | `WebGLPathTracer` | Internal renderer. Can be used to access/edit internal properties |
| ~~`renderer`~~ | `WebGLPathTracer` | DEPRECIATED: use `pathtracer` to not get confused with raster renderer |
| `reset` | `() => void` | Flushes the rendered scene and resets the samples count. |
| `update` | `() => void` | Tells the pathtracer that the scene has been updated. Everything is managed internally now. |
### Note on controls
When you set controls be sure to use `makeDefault` and it's best to import the `OrbitControls` [from drei](https://drei.docs.pmnd.rs/controls/introduction)
```jsx
// ...
```
### Development
#### Dev
```bash
cd project-root
yarn
yarn dev
```
#### Build
```bash
yarn build
```
#### Publish
```bash
cd package
npm run release
```