Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
renderpass [2020/01/09 14:07] – [Rendering Method] admin | renderpass [2020/01/09 14:24] – [How to use] admin | ||
---|---|---|---|
Line 170: | Line 170: | ||
[TRenderTarget.Color_0, | [TRenderTarget.Color_0, | ||
TAlphaColorF.Create(0, | TAlphaColorF.Create(0, | ||
- | FFBO.Bind(); | + | |
+ | // prepare framebufferobject for multiple render targets | ||
FFBO.Prepare([TRenderTarget.Color_0, | FFBO.Prepare([TRenderTarget.Color_0, | ||
end; | end; | ||
Line 176: | Line 177: | ||
OnPassEnd: | OnPassEnd: | ||
begin | begin | ||
- | AContext.SetCameraMatrix(FPrevCamView); | + | AContext.SetCameraMatrix(FPrevCamView); |
- | + | ||
- | FFBO.Unbind(); | + | |
end; | end; | ||
end; | end; | ||
Line 306: | Line 305: | ||
To use a render target from the framebuffer object, we need to clear it on each rendering step. | To use a render target from the framebuffer object, we need to clear it on each rendering step. | ||
After that, we have to activate it for shader usage by the Prepare() method. | After that, we have to activate it for shader usage by the Prepare() method. | ||
+ | The prepare method will activate all supplied render targets for shader computation. | ||
+ | If you forget to execute prepare() only the default target Color_0 will be available for computation. | ||
We do this all in the render-pass callback method (DoOnRenderPass), | We do this all in the render-pass callback method (DoOnRenderPass), | ||
Line 320: | Line 321: | ||
FFBO.Clear(Point(AContext.Width, | FFBO.Clear(Point(AContext.Width, | ||
LTarget, TAlphaColorF.Create(0, | LTarget, TAlphaColorF.Create(0, | ||
- | | ||
- | // bind again the framebuffer object | ||
- | FFBO.Bind(); | ||
| | ||
// activate the specific render target buffer for shader | // activate the specific render target buffer for shader | ||
Line 337: | Line 335: | ||
begin | begin | ||
[...] | [...] | ||
- | | ||
- | // unbind framebuffer object | ||
- | FFBO.Unbind(); | ||
end; | end; | ||
</ | </ | ||
Line 399: | Line 394: | ||
FMyRenderPass.Enabled := true; | FMyRenderPass.Enabled := true; | ||
</ | </ | ||
+ | |||
+ | Next step: [[shadows|Shadows]] |