Een Blender-scène die samen met zijn bronnen reist.
Om een Blender-scène over te zetten, verzamel je de afhankelijkheden rond het project, maak je de paden overdraagbaar en controleer je de kopie op een plek die de oude bronnen niet meer kan vinden. Het .blend-bestand alleen is geen bewijs van een compleet dossier. Ons originele Pli-pakket past deze methode in de praktijk toe met een keramische flacon, een distribueerbare texture en een controle die onafhankelijk van Blender is.
Pli — draagbare Blender-map
Originele generator voor Blender 4.5.x LTS, procedurele textuur, recept, licentie, manifest en ontvangstformulier. Er wordt geen .blend of render geleverd: die moeten nog worden gereconstrueerd en gecontroleerd met Blender.
Wat er is gecontroleerd
- Validatie van bestanden uit een uitgepakte ZIP, met toegang tot de originele bronnen geweigerd.
- Ontbrekende textuur, gewijzigde textuur en extern pad gedetecteerd; formulier ingevuld op een geaccepteerde kopie.
- Blender, CPU-render, GPU-render en het uiterlijk van de scène: niet uitgevoerd of niet gecontroleerd.
Het project Pli: een scènerecept met een afgebakende scope
Pli is een fictieve flacon die voor deze oefening is bedacht: paars lichaam met zachte randen, verzadigde oranje kraag, label met chevrons en een sokkel van klei. De generator voorziet in een studiolicht en een compositie die links ruimte laat. Hij bouwt de objecten en materialen op; de enige externe afbeelding is een origineel PNG-patroon van 512 × 512 pixels, samen met het programma dat het opnieuw aanmaakt. Er is geen model, HDRI, lettertype of klantbestand nodig.
Het doel is Blender 4.5.x LTS met Cycles. Het dossier betreft een stilstaand beeld, zonder simulatie of add-on. De generator weigert een andere Blender-tak, zodat deze keuze expliciet blijft. Een Python 3.10 of recenter volstaat voor de bestandscontrole; om de scène te bouwen is de Python nodig die in Blender is ingebouwd.
Pli levert een generator die je met Blender 4.5.x LTS uitvoert. De bestanden en foutgevallen zijn gecontroleerd onder Python 3.14.6; het aanmaken van de scène, het openen en het renderen moeten nog in Blender worden getest. Er wordt geen .blend-bestand of render meegeleverd.
Bepaal vóór het kopiëren wat het project moet teruggeven
Begin met het bepalen van het eindproduct: stilstaand beeld, animatie of reeks varianten. Noteer de software en zijn versie, de engine, de actieve camera, de scène, de afmetingen en de kwaliteitsinstellingen. Voeg voor een animatie de framerate en de inclusieve grenzen toe. Een scène die opent, geeft niet per se dezelfde textures, dezelfde caches of de juiste kadrering terug.
Werk op een bevroren versie en bewaar de originelen. Scheid de gebruikte bronnen van de verlaten experimenten; twee bijna gelijknamige textures kunnen een verschil in materiaal verklaren. Controleer ook de overdrachtsrechten van modellen, afbeeldingen en bibliotheken. Het Pli-pakket levert een MIT-licentie voor zijn eigen scripts, documenten, patroon en beschreven geometrie; je eigen toevoegingen kunnen andere voorwaarden hebben.
In Pli speelt scene.json de rol van startfiche: doelversie, inventaris van de tien objecten, grafische afhankelijkheid, engine, afbeelding 1 en bestemmingen van de outputs. Hij vermeldt ook wat in dit project niet bestaat: gekoppelde bibliotheken, lettertypen, caches en animatie. Een aangegeven afwezigheid voorkomt dat je een lege map aanziet voor een vergeten bron.
Een mappenstructuur waarin elk bestand een rol heeft
Houd een versioned root aan, hier blender-v1, en pak het archief uit voordat je gaat werken. De onderstaande scheiding maakt het mogelijk de bron van een afbeelding, het bewerkbare project en het op te leveren resultaat terug te vinden. Ze legt geen universele conventie op: kies vooral namen die degene die het dossier overneemt begrijpt zonder jouw berichtenhistoriek.
De gedistribueerde bronnen staan in manifest.sha256.json met hun grootte en hun hash. Het manifest sluit zichzelf uit om een cirkelverwijzing te vermijden. Toekomstige .blend-, PNG-bestanden en rapporten zijn outputs: die moeten na validatie in je eigen leveringsinventaris terechtkomen.
| Locatie | Inhoud | Controle om te onthouden |
|---|---|---|
| 01_sources | Origineel programma van het patroon | Maakt het mogelijk de texture zonder Blender te reconstrueren |
| 02_projet | Bestemming van het .blend-bestand | Geen .blend-bestand geleverd vóór reconstructie |
| 03_ressources | pli-chevron.png, sRGB-basiskleur | Extern bestand bewaard en bedoeld om te worden ingebed |
| 04_caches | Scope-notitie | Geen simulatie voor dit stilstaande beeld |
| 05_rendus | Bestemming van de afbeeldingen | Geen CPU- of GPU-render geleverd |
| 06_livraison | Sjabloon voor ontvangst en toekomstige rapporten | Kopieer het sjabloon voordat je het invult |
Controleer de uitgepakte ZIP voordat je Blender start
Start vanuit de hoofdmap van de uitgepakte map de validator met een onafhankelijke Python. Die vergelijkt dertien bestanden met het manifest, controleert het recept, de paden en de PNG, en analyseert daarna de syntax van vier scripts. Het verwachte resultaat voor een intact pakket is ok: true en een exitcode 0. Deze controle importeert geen bpy en produceert geen enkele 3D-afbeelding.
Onze tests vertrekken van de ZIP die op een andere locatie is uitgepakt. Het verificatieproces staat alleen leesbewerkingen toe in die kopie en in de map van de gebruikte Python; een poging om het originele recept te benaderen wordt expliciet geweigerd. Het succes hangt dus niet af van een textuur die stilletjes in de creatiemap wordt teruggevonden.
Een code 1 betekent dat je de foutenlijst moet lezen. Herschrijf de fingerprints niet om een waarschuwing te laten verdwijnen. Neem het intacte archief opnieuw, of maak een aparte werkversie als je de scène wilt aanpassen. Een identieke fingerprint bewijst de integriteit van het bestand ten opzichte van het manifest, niet de visuele kwaliteit of de identiteit van de maker.
python validate_pack.py --root . --jsonHet flesje reconstrueren en een kleine CPU-render aanvragen
De volgende opdracht is de procedure die je uitvoert op een machine met Blender 4.5.x LTS; ze is tijdens deze voorbereiding niet uitgevoerd. Start ze in een apart proces: het script begint met een lege scène. Onder Windows gebruik je het volledige pad naar het uitvoerbare bestand als blender niet in het PATH staat; in PowerShell zet je & voor dat pad tussen aanhalingstekens.
De generator controleert eerst het pakket, maakt de objecten aan, laadt de textuur uit de kopie, sluit die in en slaat 02_projet/renderparcel_pli_v1.blend op. Het opgeslagen bestand voorziet Cycles CPU, 1.200 × 750 pixels, 64 samples en afbeelding 1. De optie --render-preview vraagt daarna een PNG van 480 × 300 pixels en 16 samples, zonder denoising. Deze getallen zijn instellingen, geen prestatiemetingen.
Het rapport reconstruction.json wordt na de geslaagde bewerkingen geschreven en vermeldt of de render daadwerkelijk is uitgevoerd. Om alleen het .blend te bouwen, laat je -- --render-preview weg. Het script weigert bestaande uitvoer te overschrijven: een tweede poging gebeurt in een nieuwe uitpakking. De optie --python-exit-code 1 maakt het mogelijk een uitzondering van het script te herkennen aan de exitcode van het proces.
blender --background --factory-startup --python-exit-code 1 --python generate_scene.py -- --render-previewRelatieve paden: de positie beschrijven zonder de kopie te vergeten
In Blender verwijst een pad dat begint met // naar de locatie van het .blend-bestand. Omdat het project Pli in 02_projet komt, kan de textuur worden aangeduid met //../03_ressources/pli-chevron.png. De map met resources reist mee. De generator begint toch met een absoluut pad dat in de kopie is opgelost, sluit de afbeelding in en schrijft daarna het relatieve pad vóór het opslaan.
Sla voor een bestaand project eerst het .blend-bestand op in de overdrachtsmap. In File → External Data zet Make Paths Relative de verwijzingen om; deze bewerking kopieert de resources niet. Report Missing Files helpt verbroken koppelingen op te sporen. Find Missing Files zoekt de bestanden in de geselecteerde map en kan de verwijzingen herstellen als absolute paden: controleer ze opnieuw vóór de overdracht.
Verwar ‘gevonden op deze machine’ niet met ‘aanwezig in de map’. Een textuur die nog bereikbaar is in Downloads kan een vergetelheid verbergen. Open het project na het kopiëren in een omgeving waar die oude locatie de koppeling niet meer kan vervullen, terwijl je een onafhankelijke back-up bewaart.
Geschikte resources insluiten, de andere inventariseren
Met Pack Resources kun je de in aanmerking komende resources in het .blend-bestand opnemen; door op te slaan wordt deze bewerking definitief in het verzonden bestand. Dit bundelt niet alle afhankelijkheden: video's zijn een gedocumenteerd tegenvoorbeeld. Gekoppelde bibliotheken hebben een aparte opdracht voor het inbedden. Maak dus een lijst van wat wel wordt ingebed en wat naast het project moet blijven staan.
Voor Pli is het handig om de externe PNG te behouden, zodat je die makkelijk kunt aanpassen, terwijl inbedding ervoor moet zorgen dat het patroon terug te vinden is in het opgeslagen bestand. Na een wijziging van de texture moet je de resource die daadwerkelijk wordt gebruikt bijwerken en daarna de juiste versie opslaan. Het simpelweg vervangen van een PNG ernaast bewijst niet dat het .blend-bestand de nieuwe pixels gebruikt.
| Resource | Keuze van het pakket | Als je de scène uitbreidt |
|---|---|---|
| PNG-patroon | Gescheiden bron en geplande integratie | De aangepaste texture opnieuw laden, controleren en opslaan |
| Geometrie en procedurele materialen | Gebouwd door het script | De scriptversie of het bewerkte project behouden |
| Gekoppelde .blend-bibliotheek | Geen | De bibliotheek en zijn eigen afhankelijkheden inventariseren |
| Video, audio of cache | Geen | Externe bestanden die nodig zijn behouden en beheren |
Heropenen in een tweede proces en een echte ontvangst invullen
Na een geslaagde reconstructie opent inspect_scene.py het .blend-bestand in een tweede Blender-proces, met de uitvoering van de interne scripts uitgeschakeld. Het controleert de inventaris, de camera, de uitvoerinstellingen, de AgX-transformatie, de ingebedde texture en het relatieve pad ervan. Het rapport beschrijft het openen en de gegevens; het zegt niets over de kwaliteit van de render.
Open de verkregen PNG in een imageviewer. Controleer of de fles volledig in het kader blijft, of het etiket het crème-, paarse en oranje patroon toont, of het contact met de sokkel leesbaar is en of er geen magenta textuur verschijnt. Deze criteria zijn bedoeld als ontvangstintenties; we publiceren geen met Blender berekende referentieafbeelding voor dit pakket.
Kopieer 06_livraison/modele-reception.csv naar 06_livraison/reception-executee.csv en vul vervolgens dit nieuwe formulier in. Laat het sjabloon ongewijzigd: het hoort bij het manifest. De validator accepteert de ingevulde kopie zonder de vingerafdrukken van de bronnen te wijzigen, wat onze ontvangsttest heeft gecontroleerd. Inventariseer daarna dit formulier en de goedgekeurde uitvoer in je leveringsarchief.
blender --background --factory-startup --python-exit-code 1 --python inspect_scene.pyEen ontbrekende afhankelijkheid moet de controle stoppen
De negatieve oefening van het pakket haalt pli-chevron.png uit een testkopie, zonder de bronnen aan te raken. De validator geeft dan code 1 terug en identificeert zowel het bestand dat ontbreekt in de inventaris als de ontbrekende afhankelijkheid van het recept. De generator begint met diezelfde controle: hij moet weigeren verder te gaan met deze onvolledige kopie.
Een andere test wijzigt de eerste byte van de PNG; de controle detecteert een andere vingerafdruk en een ongeldige afbeeldingssignatuur. Een derde vervangt het pad door een verwijzing buiten de map, die eveneens wordt geweigerd. Deze tests controleren concrete overdrachtsfouten. Ze simuleren niet het openen van Blender of het verdwijnen van een cache in een animatie.
Om de oefening opnieuw te doen, werk je uitsluitend op een extra extractie en bewaar je een intacte kopie. De correctie bestaat erin de juiste resource en de verwachte locatie terug te vinden. Een andere texture met dezelfde naam voldoet niet aan de integriteitscontrole.
Een animatie toevoegen verandert het controlegebied
De scène Pli heeft slechts één afbeelding en heeft geen cache nodig. Als je er rook, stof of een simulatie aan toevoegt, documenteer dan het cachetype, de rekenversie, de locatie en het volledige bruikbare bereik. De mechanismen voor voorberekening hangen af van het fysieke systeem; generaliseer het gedrag van één cache niet naar alle andere.
Zet het resultaat vast voordat je het kopieert. Controleer bij een sequentie het begin, het einde, de wijzigingen van decor of simulatie, maar ook de aanwezigheid van elk tussenliggend bestand. Drie visueel correcte beelden bewijzen niet dat de 96 bestanden van een animatie van 1 tot 96 beschikbaar zijn. Geef duidelijk aan of een cache wordt meegeleverd of opnieuw moet worden berekend, met welke parameters en welke invoer.
Pas dezelfde logica toe op sequenties van texturen, volumes, geluiden en montagemedia. Verwijder niet de enige bronnen na het maken van de ZIP: bewaar ze tot het openen van de kopie, het controleren van de uitvoer en het terugvinden ervan.
Kleur, geheugen en duur: het echte project meten
Het patroon Pli dient voor de basiskleur en is als sRGB opgegeven. Een kaart die normalen of een verplaatsing beschrijft, heeft niet dezelfde rol; de interpretatie moet overeenkomen met de gegevens. Bewaar ook de weergavetransformatie en de belichting bij het vergelijken van uitvoer. Een kleurverschil kan uit de weergaveketen komen, zonder verband met de rekenkracht.
Het gewicht van de ZIP zegt niets over de behoefte aan GPU-geheugen. De geëvalueerde geometrie, de werkelijk geladen texturen en de stappen van de render tellen meer dan het aantal bestanden in een archief. Een kleine CPU-preview voorspelt noch de geheugenpiek noch de duur van de uiteindelijke render op GPU. Meet een volledige representatieve uitvoer op de definitieve resolutie voordat je een configuratie kiest.
De 3D-werkplaats helpt om deze controle af te bakenen. Vergelijk daarna de GPU-configuraties op basis van compatibiliteit en de waargenomen piek, met een marge die bij het project past. Kies 3, 7 of 30 dagen in de configurator om openen, testen, herzieningen, berekeningen en herstel te dekken; geen van deze vensters garandeert op zichzelf een rendertijd. De exportgids verlengt het werk tot de opleverbare bestanden.
Wat is gecontroleerd, en wat nog moet worden uitgevoerd
De zeven controles hieronder zijn uitgevoerd onder Windows met Python 3.14.6. Het pakket bevat veertien bestanden, waaronder het manifest; dertien bestanden worden door de vingerafdrukken gedekt. De textuur is gereconstrueerd en byte voor byte vergeleken in deze omgeving. Deze gelijkheid van de PNG bewijst geen identieke 3D-render tussen versies of hardware.
De controles betreffen de bestanden, hun afhankelijkheden en overdrachtsfouten. Het genereren van de .blend, het inspecteren van de scène en de CPU- of GPU-renders zijn niet getest. De README geeft de procedure om ze te controleren in Blender 4.5.x LTS.
| Test | Resultaat | Bereik |
|---|---|---|
| ZIP uitgepakt, originelen ontoegankelijk | Code 0 | Integriteit, keuring, PNG en Python-syntaxis |
| Kopie van de fiche en invoer | Code 0 | De bronnen blijven gecontroleerd na ontvangst |
| Textuur uit een kopie verwijderd | Code 1 verwacht | Ontbrekende afhankelijkheid geïdentificeerd |
| Textuur gewijzigd | Code 1 verwacht | Vingerafdruk en PNG-ondertekening afgewezen |
| Pad dat de map verlaat | Code 1 verwacht | Externe verwijzing afgewezen |
| Reconstructie van het patroon | Identieke bytes | Procedurele textuur, geen Blender-render |
| Generator gestart met alleen Python | Weigering verwacht | Blender vereist, geen bpy-uitvoering |
Om verder te komen met je project.
Dezelfde kleuren terugvinden
Gegevens, weergave en export onderscheiden om beelden in de juiste context te vergelijken.
Lees het notitieboek Materialen, licht & beeldBruikbare passes aanleveren
De nuttige outputs kiezen en een EXR-bestand in de ontvangende software controleren.
Lees het notitieboekJe vragen.
Waarom bevat het pakket niet al een .blend-bestand?+
Het pakket levert de originele generator en zijn bronnen. Het maken en openen van de scène moet nog worden getest: er wordt geen .blend of render meegeleverd. Op een machine met Blender 4.5.x LTS legt de README uit hoe je de .blend maakt en die vervolgens in een tweede proces inspecteert.
Kan een .blend met ingebedde bronnen de hele map vervangen?+
Dat hangt af van de gebruikte gegevens. Sommige bronnen kunnen worden ingebed; andere, met name video's, blijven extern. Houd een expliciete inventaris bij en controleer de afhankelijkheden van je eigen scène. Het pakket Pli behoudt zijn brontextuur om wijzigingen mogelijk te maken.
Waarom meldt het manifest mijn wijzigingen als een fout?+
Het beschrijft de bestanden die in versie 1.0.0 zijn gedistribueerd. Het wijzigen van een script, een recept of een textuur verandert normaal gesproken de fingerprint. Werk in een nieuwe versie en stel de inventaris daarvan op. Kopieer voor de ontvangst het CSV-sjabloon naar reception-executee.csv: deze uitvoer blijft gescheiden van het gecontroleerde sjabloon.
Kan met dit pakket direct een GPU-kaart worden gekozen?+
Nee. Het dient om een overdracht voor te bereiden en te controleren. Voor deze scène is geen VRAM-behoefte of GPU-tijd gemeten. Test je volledige productie, de compatibiliteit en de geheugenpiek voordat je de huur bepaalt.