Skip to content

Designing and implementing a migration path for porting assets to the linear pipeline #1717

@illwieckz

Description

@illwieckz

So, the linear pipeline has been merged:

So for now the engine supports:

  • rendering the old way maps done the old way (messing with colorspaces like Q3/Tremulous), also called “the naive pipeline”.
  • rendering the new way maps done the new way (properly handling colorspace conversion at every step of the baking and rendering pipeline), also called “the linear pipeline”.

It means maps already built are just rendered like before, but contributors can start creating brand new content targeting the new linear pipeline without having to care about the pitfalls and workaround and weirdness and painful wizardry of the old naive pipeline.

But what we don't care about yet, is about migrating assets from the old naive pipeline to the new linear one.

For example we know existing textures meant to be used in blending operations were wrongly calibrated for the old naive and broken pipeline. When used in the new, correct and linear pipeline, they don't render properly because they were biased to workaround bugs that don't exist anymore.

We may want to provide some kind of conversion or specially crafted workaround for when a blended asset from one pipeline is used on the other.

This would help to solve two problems:

  1. Modifying many assets is painful and tedious, if we can just flag either all old assets or old new assets to tell it was meant for a different computation, without actually checking and modifying assets one by one, we could port all of them the blind way just by doing some flagging and letting the engine do the magic.
  2. Because we provide reusable texture packs, some textures may be used in maps that will never be ported and also be used in maps that will. So having ways to workaround the usage from one way to another would help. The Unvanquished maps (including community maps), can probably be ported at some point as we either have source or authors are still around, but that's only a hope, we cannot enforce that. Also the problem is stronger for a package like res-tremulous where some legacy maps will never be rebuilt (no source, no author around), but some of other legacy maps may be ported to the new pipeline and use those legacy assets.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-RendererT-ProjectProject management/checklists/meta issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions