Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 53 reacties

Een patent van Creative dat sterk lijkt op de Carmack's Reverse-schaduwtechniek, houdt de opensource-release van de Doom 3-engine tegen. John Carmack gaat nieuwe code schrijven om de vrijgave van de broncode alsnog mogelijk te maken.

John Carmack van id SoftwareJohn Carmack meldde begin november dat de broncode van id Tech 4, de game-engine van Doom 3, klaar was om gepubliceerd te worden na goedkeuring van de advocaten. De technisch directeur van id Software twittert dat de code van de toentertijd vernieuwende schaduwtechniek wegens patenten niet geopenbaard kan worden, en dat hij vervangende code gaat schrijven voor de opensource-release van de game engine.

De schaduwtechniek in kwestie is in 1999 door Creative Labs-medewerkers William Bilodeau en Michael Songy bedacht en gepatenteerd. Door de stencil buffer van de grafische chip te gebruiken, kan worden bepaald of er shadow volumes achter een voorwerp gerenderd moeten worden. John Carmack ontdekte onafhankelijk een soortgelijke aanpak en paste het toe in Doom 3, waardoor de 'depth fail'-methode bekend werd als Carmack's Reverse. Deze methode zou echter teveel gelijkenis vertonen met het patent van Creative.

Het betreffende patent van Creative Labs veroorzaakte in 2004 al problemen toen Doom 3 nog in de winkels moest komen. Id Software sloot toen een deal met Creative om EAX-audiotechnologie in het schietspel op te nemen in ruil voor het niet hoeven betalen van licentiegelden. Dit voorkwam niet alleen een mogelijk langdurige rechtzaak, maar was volgens Carmack te verkiezen boven een andere maar slechter presterende variant van de schaduwtechniek.

Reacties (53)

Reactiefilter:-153051+136+25+32
Moderatie-faq Wijzig weergave
Beetje gek dat ze na zoveel jaar over deze engine nog een probleem gaan maken waardoor het niet kan worden uitgegeven.
Het is eigenlijk heel logisch. Toendertijd heeft Creative al aangegeven dat het van mening was dat ze het patent schenden, en daar is toen een deal over gemaakt zodat ID gebruik mocht maken van het patent in Doom-3.

Aangezien het patent nog steeds eigendom is van Creative kan ID niet zomaar code onder een OS licentie uitbrengen die dat patent ( mogelijk ) schaad. Natuurlijk zouden ze nog voor de rechter kunnen beproeven of het patent daadwerkelijk door de versie van Carmack geschaad word, maar dat zou waarschijnlijk een stuk meer kosten dan een andere techniek inbouwen.
Wat rickyy wellicht bedoelt is dat stencil-schaduwen al lang achterhaald zijn. Creative heeft er dus geen baat bij om het patent te doen gelden.

Anderzijds heeft ook id er geen baat meer bij om nog de depth-fail techniek te gebruiken; huidige systemen zijn krachtig genoeg om de klassieke depth-pass methode toe te passen.

Het is vooral bewonderenswaardig dat Carmack nog zijn tijd wil steken in het aanpassen van deze oude code.
Dat de techniek achterhaald is wil toch niet zeggen dat de engine er geen gebruik van maakt? Misschien is dat juist wat Carmack aan het maken is.

@rmd, dat kosteloos is alleen op het moment dat jij het ook kosteloos verder verspreid. Als jij geld gaat vragen voor jou product met de ID engine dan mag jij licentie gelden gaan betalen. Niet gek dus dat Creative ook nog een stukje van die taart wil.
Dat de techniek achterhaald is wil toch niet zeggen dat de engine er geen gebruik van maakt?
Het wil zeggen dat ze er zo goed als geen licentiegelden meer uit kunnen halen omdat de techniek zo goed als dood is. Het patent is wat dat betreft gewoon obsolete. Maar idd, er is oude zooi die het gebruikt, en als je dat wil verspreiden dan zal er ook betaald moeten worden (of de gebruikte techniek aanpassen).

@c0d1f1ed:
Creative heeft er dus geen baat bij om het patent te doen gelden.
Klopt, maar de GPL verbiedt tevens dat er gepatenteerde code gebruikt wordt. Dus ook al zou Creative het door de vingers zien, dan nog kan de code niet geGPL'd worden.
Niet geheel correct. De GPL verbiedt gebruik van gepatenteerd materiaal, die niet Royalty Free World Wide is. Dat beperkt het gebruik van gepatenteerde technieken aanzienlijk, maar maakt het gebruik niet onmogelijk.
Creative zou zichzelf, juridisch gezien, in een hoek kunnen drijven door de vrijgave toe te staan. Als er na deze release een soort gelijk dispuut ontstaat met een andere partij en het zijn geen achterhaalde patenten? Dan zal Creative het veel zwaarder moeten verdedigen omdat de tegen partij vindt dat zij dat recht daardoor ook hebben.

Met de komst van mobiele apparaten die ook steeds geavanceerdere spellen ondersteunen zijn deze patenten juist weer het verdedigen waard.

[Reactie gewijzigd door Xion op 16 november 2011 17:27]

Is dat patent dan nog geldig?
Als Creative er niets meer op verdiend en niet meer de verschuldigde betalingen voldoet, dan is het vrij te gebruiken. Hebben ze dat wel opgezocht? ;)
Hoeft er niets herschreven te worden, niets betaald en ook niet meer verdedigd.

Daarbij: Toen leek het patent al achterhaald. Vraag is of toen iemand het nog aandurfde om de validiteit aan vechten.
"Wat rickyy wellicht bedoelt is dat stencil-schaduwen al lang achterhaald zijn. Creative heeft er dus geen baat bij om het patent te doen gelden."

Anderzijds heeft ook id er geen baat meer bij om nog de depth-fail techniek te gebruiken; huidige systemen zijn krachtig genoeg om de klassieke depth-pass methode toe te passen."

Alsof er geen opkomende 3D markt is op mobiele apparaten.
Developers zijn al een tijdje oude technieken uit de kast aan het trekken om efficiente code op telefoons en tablets te maken.
Daar zullen stencil schaduwen nog best een tijdje meegaan.
En dan is het nog zo dat depth-pass wat nadelen heeft die depth-fail niet heeft.

Dus genoeg redenen om het niet af te zeiken!
:)
Daar zullen stencil schaduwen nog best een tijdje meegaan.
Kwa performance zijn stencil shadows zijn nooit echt veel goedkoper geweest dan shadowbuffers (zeker niet in situaties zoals bij een laaghangende zon - stencil fillrate galore). Ze kosten hooguit minder geheugen.
Het siert Carmack wel. Een tijd terug was deze man ook al in het nieuws door het maken van een port van Wolfenstein 3D. De ontwikkelafdeling welke verantwoordelijk was voor de port gaf aan dat het twee maanden extra zou kosten om met een team de port af te ronden. Carmack vond dit onzin, pakte het zelf op leverde de port in vier dagen volledig op.
Bewonderenswaardig idd vooral omdat ze het voor niets doen (kosteloos).
Hij is het al maanden aan het herschrijven.

Het is echt niet zo gek van creative dat ze dat eisen. Ze kunnen er nog steeds goed geld mee verdienen.
En als ze het weg gaan geven is er jurisprudentie en kunnen andere bedrijven onder hun contracten uit...
Klopt, maar is het niet zo dat die schaduw techniek flink gedateerd is in tegenstelling tot de huidige technologie?

[Reactie gewijzigd door S7YX op 16 november 2011 15:11]

Klopt, stencilshadows hebben zo hun problemen. De voornaamste is dat een object 'waterdicht' moet zijn, of een "closed manifold" of "gesloten variëteit" in geometrische termen. Dat wil zeggen het oppervlak geen randen kent, of specifieker in 3D modeling, elke edge moet gedeeld worden door precies 2 polygonen.

Dit geldt natuurlijk wel voor simpele objecten zoals kubussen en bollen, maar lang niet altijd voor objecten die gemaakt worden door grafici. Neem bijvoorbeeld een boom met een tak. Gebruikelijk is om de polygonen van de tak iets door de boomstam heen te laten steken in plaats van ze perfect aan te sluiten op de stam en het "gat" dat de tak vormt in de stam uit de stam te knippen. Als je het rendert zie je dat soort dingen toch niet, maar dit geeft hele rare schaduweffecten als je stencil shadow technieken gebruikt. Het kost dus de nodige moeite om te zorgen dat al je content inderdaad waterdicht is als het schaduws moet werpen.

Een ander probleem is dat stencil shadows nogal hard zijn. Je ziet duidelijk de grens tussen een pixel die wel in de schaduw ligt en eentje die niet in de schaduw ligt, terwijl daar in de praktijk een wat breder verloop in zit.

Een derde probleem is dat het niet werkt met "gaten" in textures. Neem een hekwerk. Vaak is dat gewoon een enkele polygoon met een texture erop met een alpha kanaal, dat bepaalt welke pixels transparant zijn. Een stencil volume heeft daar geen weet van, en dus kan een dergelijk hekwerk nooit een schaduw werpen zonder de ijzerdraadjes in het hekwerk expliciet te modelleren.

Huidige technieken zijn gebaseerd op shadow buffers - feitelijk gewoon een diepteplaatje gerenderd vanuit het oogpunt van het ligt. Die dieptewaarden geven in feite de afstand tot het ligt. Door die shadow texture te projecteren op de omliggende geometrie en te controleren of de afstand van de pixel tot het licht kleiner of groter is dan de waarde in de shadowbuffer kun je bepalen of iets wel of niet in de schaduw valt. Die hebben geen last van bovenstaande problemen, maar die hebben weer hun eigen problemen ("surface acne" door precisieproblemen waarbij iets dat in het licht valt toch af en toe in de schaduw lijkt te vallen, en sowieso het geringe aantal pixels in een shadow buffer, helemaal bij zoiets als een laaghangende zon waar feitelijk de gehele scenery in de buffer gerenderd moet worden)

[Reactie gewijzigd door .oisyn op 16 november 2011 16:16]

Niet echt het is nog steeds een keuze maken tussen shadow maps (dit gebruikt textures om de diepte van objecten op te slaan die een licht bron kan zien) of shadow volumes. Beide techniquen hebben drawbacks, maar zijn de meest gebruikte technieken om schaduwen te renderen.
Je hebt tegenwoordig ook ray casted en photon mapping maar deze zijn vrijwel alleen ofline technieken, of precomputed.
Tja, maar omdat het gedateerd zou zijn betekend nog niet dat het patent ongeldig is..
Er ontstaat alleen jurisprudentie als het bij een rechter komt te liggen. Als zij het "weggeven" (dwz: niet actief vervolgen), betekent nog niet dat andere bedrijven zomaar onder hun contracten uit kunnen.
Dit toont weer heel mooi het gevaar van software patenten aan. Hoewel het een aardig specifiek iets omschrijft, is het of:
A ) mogelijk geweest dat 2 developers dezelfde oplossing bedacht hebben.
B ) dat de oplossing nagebouwd is.

edit: smilies voorkomen
zoals Dr Flash aanhaalt is mogelijkheid B wel aan de orde.

[Reactie gewijzigd door Aragnut op 16 november 2011 15:57]

als je de link volgt onder "shadow volumes" kan je lezen dat "carmacks reverse" een 'uitbreiding' is op het betreffende patent. maw de uitvinding van carmack is gedaan op basis van informatie die hij over het onderwerp had vanuit het bestaande patent. Denk dat daar ook het probleem ligt.
Dan heb jij blijkbaar een ander artikel gelezen dan ik. "Carmack's reverse" is namelijk precies het algoritme dat gepatenteerd is door de mannen van Creative Labs.

Stencil shadows werken door een object te 'extruden' in de richting van het licht. Dit gehele volume beschrijft in feite de schaduw van het object in de 3D ruimte. Als er een te renderen pixel in dat volume valt, dan ligt het dus in de schaduw. Om alle pixels in de renderbuffer te markeren die in de schaduw liggen wordt de stenilbuffer gebruikt - dit zijn extra bits aan informatie die per pixel worden opgeslagen.

Nadat je de depth buffer hebt gevuld met alle geometrie in de scene, teken je de shadowvolumes van een licht, een volume per object waar het licht op valt. Dat volume is zoals gezegd opgebouwd uit een geëxtrude versie van het object, en bestaat dus uit polygonen. Je hebt front-facing polygonen, die naar de camera toe zijn gericht, en back-facing polygonen die van de camera af wijzen. Als je begint met een leeg stencilbuffer, en je verhoogt bij elke front-facing polygoon de waarde in de stencilbuffer en je verlaagt deze weer bij elke back-facing polygoon, dan hebben uiteindelijk alleen die pixels die in de schaduw vallen een stencilwaarde ongelijk aan 0. Dit komt omdat de depth test ervoor zorgt dat pixels die achter een al bestaande pixel ligt niet worden getekend. Als een dergelijke schaduw op de muur valt, dan vallen de front-facing polygonen van het volume vóór de muur (+1), en de backfacing polygonen áchter de muur (-1). Die laatste worden dus niet getekend, en dus houden de muurpixels in de schaduw een waarde van +1 in de stencilbuffer.

Dit werkt allemaal op zich prima, ware het niet dat het ook kan gebeuren dat de camera zich zelf ook in het volume kan bevinden. Op dat moment zie je feitelijk alleen nog maar backfacing polygonen van het volume (want de "front" facing polygonen, al kun je ze dan niet meer zo noemen, liggen achter je). Als je bovenstaande techniek gewoon hanteert, dan betekent dat dat ineens alle pixels op het scherm in de schaduw liggen.

De oplossing, die zowel John Carmack als de twee meneren van Creative Labs onafhankelijk van elkaar (volgens JC dan) hebben bedacht, is om de depth test juist om te draaien - render het schaduwvolume alleen als de pixels van het volume áchter de pixels van je geometrie liggen. Als de camera zich dan in het volume bevindt, dan zullen alleen die pixels in de schaduw komen waarbij de backfacing schaduwpolygonen zich áchter de muur bevinden. Bevinden ze zich voor de muur, dan worden ze niet gerenderd en wordt de stencilbuffer dus ook niet aangepast. Tevens werkt deze techniek ook als de camera zich niet in het volume bevindt. Ga maar na: als het volume volledig voor de muur ligt worden zowel de front- als backfacing polygonen niet getekend. Valt de muur in het volume dan worden alleen de backfacing polygonen getekent en krijgen de pixels een stencilwaarde hoger dan 0. Ligt het volume volledig achter de muur dan zullen zowel de front-facing als de back-facing polygonen worden getekent, en krijg je dus +1 en -1 en eindigt de stencilwaarde op 0.

[Reactie gewijzigd door .oisyn op 16 november 2011 16:02]

Bedankt voor de interessante uitleg, leer je ook nog wat over 3D graphics. :P
Het nog steeds aardig ku\ dat Creative niet gewoon het patent oprolt en in de fik steekt. Wat heeft de wereld hier nou aan? Een paar mensen maken mooie dingen met techniek, en toch moet iemand 'winnen' dus snel patenteren en iedereen slaan die je niet zakken geld komt brengen.

Als ik mijn geld kan verdienen en tegelijk technologie kan delen ben ik blij. Stinkend rijk zijn en alles voor mezelf hebben? Niemand om nieuwe ideeën mee te delen, spelen met techniek, of op een andere manier dingen mee uit te wisselen? Lijkt me een eenzaam bestaan.
Creative doet ook grafische technologie??...
De "Diamond Monster 3D" kaart van Creative was (een van) de eerst voor consumenten betaalbare 3D grafische kaarten. Dit was in de tijd van de Quake (1) waarvoor je via de site van id software een speciale GLQuake versie kon downloaden om deze nieuwe hardware gerenderde 3D techniek te benutten.

Die Creative kaart had echter geen eigen ontwikkelde techniek maar was slecht een OEM van 3dfx (van de 'Voodoo' kaarten).

Edit: 'Diamond Multimedia' heeft blijkbaar niets met 'Creative Technology' te maken, ik was in de veronderstelling dat Diamond een merknaam van Creative was.

[Reactie gewijzigd door PeterPan op 16 november 2011 16:53]

Je zit wel op het goede spoor. Er is wel een Diamond Monster 3D geweest (van Diamond Multimedia, inderdaad), maar er heeft óók een Creative-concurrent van die kaart bestaan. Ze hebben eigenlijk best lang grafische kaarten gemaakt; misschien doen ze dat nog wel. Ik zou het uit mijn hoofd niet weten.

[Reactie gewijzigd door Katsunami op 17 november 2011 18:54]

In een ver, ver verleden. Nog voor ATi en nVidia als enige overgebleven waren. Al hebben ze een paar jaar terug nog wat laten zien met wat ze noemen "stemcell computing"; ARM cores die zich (claimden ze iig) konden aanpassen en zo in staat waren real-time raytracing te doen. Heeft ook met rendering van doen.
In Nederland is een patent maar maximaal 20 jaar geldig.
Praktisch wordt dat zelden gehaald omdat de kosten nogal hoog oplopen.
Er wordt dus zelden die 20 jaar volgemaakt.
Inmiddels is hier al 12 jaar verstreken.

Ik weet alleen niet precies hoe dat in andere landen geregeld is, maar er staat me iets van bij dat het ook rond de 20 jaar is.
Wat betreft software is 20 jaar eigenlijk nog te lang. Kijk maar eens waar computers waren 20 jaar geleden.

Software patenten zouden niet langer dan 5 jaar mogen gelden, en zelfs dat is misschien nog te lang. Dan wordt de uitvinder van een patent gedwongen om er snel iets mee te doen en wordt het oprichten van bedrijven die dienst doen als "patent trolls" hopelijk ook minder interessant.
Hoe bedoel je? Bedoel je dat juridische procedures ervoor zorgen dat patenten niet meer gelden? Waar haal je vandaan dat de 20 jaar zelden wordt gehaald?
Er is gewoon een maximale levensduur voor die dingen.
Dat tweede haal (leer) ik van mijn stage/werk, waar ik veel te maken heb met patenten.
Je ziet dat typisch dat de meesten na 5-10 jaar niet meer verlengd worden.
Zeker patenten van minder grote bedrijven of eenmanszaakjes.
(nu is Creative alles behalve dat :P)

Er is ergens op internet/via google een hoop over te vinden, maar dat heb ik helaas momenteel niet bij de hand.
...hoe mooi zou de wereld zijn als copyrights (en gerelateerde rechten) ook maar 20 jaar zouden duren. Het werkt kennelijk prima voor uitvinders.

Op 1 januari van het jaar na het verstrijken van het copyright is alles dan Public Domain: engine, artwork, maps... en de vrijheid om alle custom maps en mods te maken en verspreiden die je maar wil.
Tja, en als het patent maximaal 20 jaar geldig is, dan is het dus nog steeds geldig.. dus wat wil je nu zeggen?
Ik dacht altijd dat softwareoctrooien maar voor 10 jaar waren blijkbaar niet dus.
In Nederland bestaan die niet.
mijn god, dit is gewoon een techniekje.

mag je dan ook niet meer shadowmappen? antialiassen? screen space ambient occluden? edge-detect AA'en? deferred lighten? etc etc etc..

dat soort dingen horen niet gepatenteerd te kunnen worden.
Tja, in jouw ogen betekend dus dat NIETS gepatenteerd moet kunnen worden, en zo dus niemand nog interesse heeft om uberhaupt geld te steken in R&D wat dus weer betekend dat de vooruitgang achteruit gaat.. Want veel technieken/producten die jij voor lief neemt zijn op deze manier betaald.
Leuk en aardig dat ie nieuwe code schrijft, maar als het effect hetzelfde blijft, wat is dan zo anders dat het wel mag?
volgens mij is het werpen van schaduwen (nog) niet patenteerbaar ;)
Nouja, het was een goede keuze. Het licht en de schaduwen van D3 zijn echt steengoed, zelfs vandaag de dag nog. Dit jaar nog D3 MP zitten spelen op "Lights out", wat ziet die game er nog goed uit ivm de meeste hedendaagse games...
Dit geeft ook precies de zwakte van patenten aan.

Zoals in de tekst staat: "John Carmack ontdekte onafhankelijk een soortgelijke aanpak en paste het toe in Doom 3, waardoor de 'depth fail'-methode bekend werd als Carmack's Reverse. Deze methode zou echter teveel gelijkenis vertonen met het patent van Creative."

Ongeacht dus of je iets onafhankelijk zelf bedenkt maar een ander legt het vast ben je dus in overtreding.

Dat bedrijven patenten willen hebben begrijp ik maar dit is echt een geval dat de consument er dus onterecht last van heeft. Als deze man dus het echt onafhakelijk heeft bedacht is het toch van de gekken dat hij zijn eigen idee niet mag distribueren?

Op dit item kan niet meer gereageerd worden.



LG G4 Battlefield Hardline Samsung Galaxy S6 Edge Microsoft Windows 10 Samsung Galaxy S6 HTC One (M9) Grand Theft Auto V Apple iPad Air 2

© 1998 - 2015 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True