![[Hoofd-balk]](../../common/images/Topbar-nl.gif)
![[Voet-balk]](../../common/images/Bottombar-nl.gif) 
| Dit document is beschikbaar in: English Castellano Deutsch Francais Nederlands Russian Turkce | 
| ![[no author]](../../common/images/white.gif)  door Martin van Velsen <vvelsen /at/ sis.pitt.edu> Vertaald naar het Nederlands door: Guus Snijders <ghs(at)linuxfocus.org> Inhoud: | 
| Minds Eye Render/modelleer Pakket![[Illustratie]](../../common/images/white.gif)  Kort: 
    Al meer dan 2 jaar is er een project gaande met de naam MindsEye. Dit
    project is er op gericht een Modelleer/Render/Animatie pakket voor
    Linux/Unix te maken dat vergelijkbaar is met grote programma's als 3D
    Studio Max of LightWave. Dusver is de ontwikkelling erg goed gegaan,
    na een ruwe start. Sommige van implementatie ontwerpen en engineering
    zijn nogal uniek voor modelleer programma's.
    
 | 
MindsEye bevindt momenteel nog in een vroeg stadium. Het meeste werk gebeurd onder de interface. Dit betekend dat nog dagelijks kan veranderen wat wel of niet functioneel is. Wij geloven in een goed ontwerpplan, alvorens gebruikers leuke speeltjes te geven.
Op dit moment wordt de markt van modelleren en renderen gedomineerd door dure commerciële software pakketten. MindsEye is het het freeware (gpl) antwoord, als een pakket dat de competitie met deze pakketten aankan. Door het beste van beide werelden te nemen plus enkele innovatieve nieuwe technieken probeert MindsEye een compleet platform te zijn voor alle 3D graphische doeleinden.
Zo'n twee jaar geleden, toen Linux nog vooral een besturingssysteem voor hackers was, ontstond het idee om te gaan werken aan een render/modelleer/animatie programma voor Linux. Geïnspireerd door het werk van de Gimp mensen, gingen we aan het werk om te zien of het eigenlijk mogelijk was om een dergelijk beest te schrijven. Voor bijna een jaar speelden we met wat ontwerp ideeëen. In het begin begonnen we helemaal verkeerd. Er werden berichten geplaatst in nieuwsgroepen om te zien of er mensen geïnteresseerd waren in meehelpen. We kregen veel reacties en het leek erop dat het geen probleem zou zijn om met dit project te beginnen. De naam was toen Free-D. Een naam die later veranderd werd in MindsEye omdat het anders verwarring zou opleveren met het Free3D library project. Het project groeide erg langzaam. Er waren tegenslagen die niets met het project te doen hadden. Zo hadden mensen erg specifieke ideeëen over wat ze graag geïmplementeerd wilden hebben. Op de mailinglist zagen we dus vaak argumenten over en weer gaan over ontwerp specificaties. Het kostte meer dan een jaar om eigenlijk wat code te produceren.
Het interessantste van MindsEye is het ontwerp. Alle delen zijn modulair, van het kleinste element tot het grootste onderdeel, zoals de modeller. Het hart van het programma wordt gevormd door wat wij de MindsEye kernel noemen. Dit is een stuk software dat zelf niet in staat is om enig grafisch werk te doen. In plaats daarvan beheerd het alle modules en plugins. Je zou het een grote bronnen manager kunnen noemen. Het is ook de plaats waar de volledige datastructuur wordt bewaard. Er is een duidelijk verschil tussen een module en een plugin in MindsEye. Een module is wat dynamische code waar de kernel zich van bewust is. Een module wordt geladen en verwijderd door de kernel. Als we zeggen "bewust van", betekent dit dat de kernel iets weet over de modules. Zo is de netwerk module bijvoorbeeld een gateway die meerdere kernels verbindt. De netwerk module kun je zien als een dummy module die een van de andere modules vervangt. Op dit moment hebben we een set basis modules gedefinieerd, deze bestaat uit:
![[kernel_layout]](../../common/May1998/kernel_layout.jpg) 
 ![[animator]](../../common/May1998/animator.jpg) 
 ![[materialen]](../../common/May1998/materials.jpg) 
 ![[render dialoog]](../../common/May1998/render.jpg) 
 MindsEye probeert een erg solide programma te zijn vanuit het
    oogpunt van software architectuur. Er zullen vele nieuwe
    technologiëen worden geïmplementeerd en het programma zou
    heel goed kunnen dienen als testomgeving voor nieuwe rendering en
    modellerings technieken. Enkele features die in de planning staan om
    te intergreren zijn:
    
     RCS voor werelden
    
    De kans bestaat dat in de nabije toekomst de scenes groter en
    complexer worden. Het beheren van deze grote werelden is een taak op
    zich. MindsEye wil helpen bij het werken aan een scene met meer dan
    een modeller tegelijkertijd. Deze mogelijkheid scheelt integratie tijd
    en brengt de totale modelleertijd omlaag. Een manier om dat te doen is
    door een soort RCS (Revision Control System) te implementeren voor
    scenes/werelden. Zo zou een modeller bijvoorbeeld kunnen werken aan
    een kleine dataset in een grote scene. Deze data wordt gereserveerd
    (gelocked) voor die modeller. Andere mensen kunnen aan andere delen
    van de data werken, zonder modellen te verstoren die zijn gelocked
    door andere modelleerders. 
    
     Programmeren op de LEGO® manier
    
    Een MindsEye kernel is niets meer dan een taak en bronmanager. Als je
    een van de modules wilt gebruiken, heb je de kernel nodig. Een
    voordeel van een kernel-gebaseerd systeem is dat het hele pakket min
    of meer als LEGO© werkt. Hoe functioneerd dit systeem? Wel, stel
    je voor; je hebt een animatie bedrijf hebt met de naam Paxir, je werkt
    aan een nieuwe film en besluit om MindsEye te gebruiken als
    ontwikkelplatform. Het bedrijf is gewend te werken met clusters van
    modelleerders en heeft een renderfarm.  Een dergelijk systeem is
    relatief makkelijk op te zetten met MindsEye. Op iedere machine,
    ongeacht het platform of doel, wordt een kaal MindsEye systeem
    geïnstalleerd. Afhankelijk van de rol van de machine worden er
    modules toegevoegd. Zo krijg je dus een cluster van modelleerders met
    de kernel en modelleer module, samen met een rendering module en een
    preview plugin.Verder rust je de renderfarm uit met de kernel en de
    netwerkmodule en de favoriete render-plugin. Iedere kernel begrijpt
    zijn rol en functioneert aansluitend.
    
     Transparante Netwerk rendering
    
    Zoals in de laatste sectie uitgelegd, zou netwerk rendering veel
    flexibeler moeten zijn met MindsEye. Waar het op neer komt, is het aan
    elkaar kopelen (daisy chaining) van een set MindsEye kernel en ieder
    van hen een deel van de animatie laten renderen. Als effect is iedere
    kernel verantwoordelijk voor zijn eigen taak, al doen de render-module
    en de rendering-plugin het eigenlijke werk. Het volledige ontwerp en
    opbouw van het programma zijn gericht op een modulaire opzet. Vele
    ideeën en concepten zijn in gedachten gehouden tijdens het
    programmeren voor dit project. Netwerk ondersteuning is slechts een
    onderdeel, maar zoals je kunt zien zit het bij het hart van waar
    MindsEye voor staat. 
    
Op het moment is MindsEye een programma dat vooral erg interessant is voor ontwikkelaars. Voor eindgebruikers is het nog niet zo heel erg bruikbaar. We werken hard om de kern van het programma erg goed te krijgen. Als dat klaar is, is de kans aanwezig dat de functionaliteit versneld beschikbaar wordt. Hieronder kun je een screendump zien van de huidige modelleer setup. Dit is een afbeelding van MindsEye-0.5.19 op een Enlightment desktop. In de modelleerder kun je zien dat er een scene met de naam rings5.nff is geladen. MindsEye kan meerdere scenes laden. Hoewel er nog niet veel bestandsformaten worden ondersteund, is de code die zorgt voor het laden en opslaan erg flexibel. Protocollen voor het dynamisch toevoegen van bestandstypen zijn in ontwikkeling. Ieder type wordt geladen door de bijbehorende plugin. MindsEye zal actief naar plugins kunnen scannen. Dit betekend dat componenten direct (on the fly) kunnen worden toegevoegd of verwijderd.
 
 | Site onderhouden door het LinuxFocus editors team © Martin van Velsen, FDL http://www.LinuxFocus.org | Vertaling info: 
 | 
2005-02-18, generated by lfparser version 2.52