public record class TextureCopyAssetA snapshot of one target in another.
Remarks
[35 § B1](../../../docs/plan/35-water.md#b1-there-is-no-shading-model-that-can-read-the-scene-behind-it), and the blocker there was the copy rather than the pass. A shading model that integrates absorption over the distance to whatever is behind it has to read the scene colour and then write into it, and writing into a target you are also sampling is undefined — not slow, not approximate, undefined. So the read has to come from a second resource, and that resource has to be a real one the graph knows the lifetime of rather than a barrier somebody remembers to place.
Not water's alone. Anything that reads the frame so far and then contributes to it wants this: refraction, a distortion pass, a heat haze, a UI that blurs what is behind it. The node is written for the general case and water is its first consumer.
⚠ Both resources have to declare the usage. The source needs CopySource and the destination CopyDestination, and neither is in RenderResourceAsset's default. Missing one is a validation error on a debug driver and silently nothing on a release one, so the build refuses it by name instead.
A copy and not a full-screen blit. A blit is a pipeline, a descriptor set and a draw; a copy is a transfer-queue operation the driver can do while the graphics queue is busy. The two are only interchangeable when the formats and sizes match — and when they do not, this refuses rather than silently rescaling, because a scene-colour copy that is quietly half resolution is a refraction that is quietly wrong.
Fields and properties (4)
public string NameThe node's name, for debug groups and for a human reading the file.
public bool EnabledWhether the node runs.
public string SourceWhat to copy, which must be declared as a copy source.
public string DestinationWhere it goes, which must be declared as a copy destination.
Used by (3)
- CompositorBuilderVixen.Rendering
- TypeRegistrationVixen.Rendering
- Vixen_Rendering_Compositor_TextureCopyAssetSerializerVixen.Rendering