# Renderer
El componente `Renderer` es el componente principal de TresJs. Es eso que crea TresJs `WebGLRenderer` y define tu escena de TresJs.
```vue{2,5}
```
## Canvas size
El componente `Renderer` usará el tamaño del componente su padre. Si deseas usar el total del tamaño disponible del viewport, puedes usar la propiedad `window-size`
```vue
```
O puedes usar CSS para configurar el tamaño de tu app
```css
html,
body {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
}
#app {
height: 100%;
width: 100%;
background-color: #000;
}
```
## Presets
Tresjs viene con algunas configuraciones listas para ti, y que puedes usar en el renderer. Puedes usarlas configurando el prop `preset`
### Realistic
El `realistic` preset configura tu renderer para escenas mas realistas en 3D.
```vue
```
Es equivalente a:
```ts
renderer.shadows: true,
renderer.physicallyCorrectLights: true,
renderer.outputColorSpace: SRGBColorSpace,
renderer.toneMapping: ACESFilmicToneMapping,
renderer.toneMappingExposure: 3,
renderer.shadowMap.enabled: true,
renderer.shadowMap.type: PCFSoftShadowMap
```
## Props
| Prop | Descripción | Defacto |
| :-------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
| **shadows** | Habilitar sombras en el Renderer | `false` |
| **shadowMapType** | Poner el tipo del mapa de la sombra | `PCFSoftShadowMap` |
| **physicallyCorrectLights** | Si usará el modo de luz que es físicamente correcto. Ver [lights / physical example](https://threejs.org/examples/#webgl_lights_physical). | `false` |
| **outputEncoding** | Definer el output encoding | `LinearEncoding` |
| **toneMapping** | Definer la exposición de mapping tone usado por renderer. | `NoToneMapping` |
| **context** | Se puede usar eso para pegar el renderer al [RenderingContext](https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext) que ya existe. | |
| **powerPreference** | Provee una pista al navegador que indica que configuración de GPU es apto para este contexto WebGL. Puede ser "high-performance", "low-power" o "default". | `default` |
| **preserveDrawingBuffer** | Si preserva los buffers hasta que se despeja manualmente o son sobre escritos. | `false` |
| **clearColor** | El color que el renderer usará para en el canvas. | `#000000` |
| **windowSize** | Si usa el tamaño del viewport como el tamaño del canvas o el elemento padre. | `false` |
| **disableRender** | Deshabilitar el render con requestAnimationFrame API, util para PostProcessing | `false` |
| **camera** | Una cámara configurable de forma manual para el renderer. | |
## Propiedades por defecto
TresJs intenta ser el menos tendencioso que es posible. Eso es porque no se pega casi nada valor de defacto para el componente `Renderer`. Necesitas pegar los props que quieres usar. La sola excepción es el `antialias` prop. Se pega a `true` por defacto.