Unlimited Detail lovar oändlig detaljrikedom i spel

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av dakorp
Detta är ett häftigt teknikdemo, men jag kan garantera att de närmaste 10 åren kommer det stanna vid ett sådant. Detta är garanterat ingenting vi kommer se de närmaste åren - inte en chans! Förstår ni hur mycket punkter det skulle krävas för att klara av att visa en unik och högdetaljerad scen som inte är procedurell eller instanser av samma objekt? Tänkt på att du ska kunna gå upp i när-när-bild på varenda område och det ska fortfarande finnas points i point-cloudet för att visa det!

Ok, låt oss tänka på det lite granna, och fundera lite på vad som skulle krävas.
Om vi antar att detaljrikedomen är 1mm per point. (inget som hindrar en från att använda större points för att spara minne.)
En point = en pixel på skärmen, Optimalt.
Då skulle det på en skärm på 1920x1080 synas 1,92meter x 1,08meter. Jag är inte bekant med vilken vinkel man brukar ha på kamerorna i vanligt FPS spel, men känner man till det så skall det gå att räkna ut vilket avstånd betraktaren står på. (jag gissar på ca en meter.)

Om vi antar för enkelhetens skull , att vi har endast ett platt objekt i scenen som är 1,92x1.08meter, så skulle man alltså behöva 1920x1080 points för att nå en detaljrikedom på 1mm. (2,073,600 points).

För att det skall bli någelunda snyggt så skall vi ha med färg och brilljans.
om vi för enkelhetens skull antar att varje "channel" ligger på 8 bitar, så behöver vi 8 bitar för Röd, 8 bitar för Grön, 8 Bitar för Blå och 8 bitar för briljans. 8 bitar är en byte, så vi behöver alltså 4byte för att beskriva en point.

Ett Polygon object som är platt behöver minst 2 polygoner för att bygga upp en rektangel.
Däremot så kommer den att behöva en bitmap som är 1920x1080pixels med 8 bitars RGB , och en till bitmap på 8 bitar för brilljans. totalt 4 byte per pixel.

Med andra ord så krävs det exakt samma mängd minne för en enkel rektangel på 1920x1080, om vi bara räknar på Färg och Brilljans.

men vänta nu, har vi inte glömt något?
jodå det har vi, ett object måste ju ha X Y Z coordinater också.
Så det blir 3 * 16bit per point minst.
i polygon fallet så vinner den lätt med sina 2 polygoner som har bara 6 points (3*16*6/8=324 byte), medans pointcloud behöver 3*16*1920*1080 bits.(12,441,600 byte) OMG!!!!

Men vänta nu , vi är inte riktigt klara. för ännu så länge så har vi inte räknat med bumpmaps. så det blir ett till bitmapplager på 8bits * 1920x1080 för polygon sidan.
Dock så klarar sig pointcloud sidan bättre, eftersom bumpmap kan mappas in i coordinaterna direkt, så det kostar inget extra.
jo, lite mera points blir det för att fylla upp mellanrummen, men det beror helt på hur bumpen ser ut. är det väldigt liten skillnad mellan points så behövs det väldigt lite extra points.

Alternativet är att man skippar bumpmap för polygonen och bygger in bumpen i själva objektet, men detta skulle bli vansinnigt mycket mera polygoner.

Nu tog kaffet slut, så nu orkar jag inte räkna vidare.
Men summa summarum kan man väl säga att så jävla stor skillnad i minnesåtgång är det faktiskt inte om man ska rita väggar och golv.
Ska vi däremot rita mer avancerade objekt som gubbar och orcer, då blir det jobbigare att räkna ut matten. Men man kan ju anta att ett objekt av polygoner med alla dess bitmaps för diverse effekter, och polygoner,, kommer att landa på ungeför samma som pointcloud. då en pointcloud endast behöver points för själva ytan på objektet.
Visst , med tesselering och komprimerade bitmaps så får man ner storleken, men det ju inget som säger att man inte kan använda samma tekniker med pointcloud.

Det blir alltså ung samma minnesåtgång.
och nu ska jag ha kaffe.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av moire
JA! äntligen! Detär påtiden att dessa spelförstörande polygoner får en teknisk utmanare!

Om de kan implementera bra ljussättning i detta system så har vi en ny holy grail för spel

Har finnits innan, t.ex. "Tile based renderering" från STMicro/PowerVR i deras Kyro-kort som var enligt min mening en helt otrolig teknik på sin tid. Tillsammans med sin teknik för HSR så klådde de upp hårdvarunmässigt mera avancerade kort. Har för övrigt fortfarande kvar mitt Kyro2 av nostaligskäl...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Lordsqueak
Ok, låt oss tänka på det lite granna, och fundera lite på vad som skulle krävas.
Om vi antar att detaljrikedomen är 1mm per point. (inget som hindrar en från att använda större points för att spara minne.)
En point = en pixel på skärmen, Optimalt.
Då skulle det på en skärm på 1920x1080 synas 1,92meter x 1,08meter. Jag är inte bekant med vilken vinkel man brukar ha på kamerorna i vanligt FPS spel, men känner man till det så skall det gå att räkna ut vilket avstånd betraktaren står på. (jag gissar på ca en meter.)

Om vi antar för enkelhetens skull , att vi har endast ett platt objekt i scenen som är 1,92x1.08meter, så skulle man alltså behöva 1920x1080 points för att nå en detaljrikedom på 1mm. (2,073,600 points).

För att det skall bli någelunda snyggt så skall vi ha med färg och brilljans.
om vi för enkelhetens skull antar att varje "channel" ligger på 8 bitar, så behöver vi 8 bitar för Röd, 8 bitar för Grön, 8 Bitar för Blå och 8 bitar för briljans. 8 bitar är en byte, så vi behöver alltså 4byte för att beskriva en point.

Ett Polygon object som är platt behöver minst 2 polygoner för att bygga upp en rektangel.
Däremot så kommer den att behöva en bitmap som är 1920x1080pixels med 8 bitars RGB , och en till bitmap på 8 bitar för brilljans. totalt 4 byte per pixel.

Med andra ord så krävs det exakt samma mängd minne för en enkel rektangel på 1920x1080, om vi bara räknar på Färg och Brilljans.

men vänta nu, har vi inte glömt något?
jodå det har vi, ett object måste ju ha X Y Z coordinater också.
Så det blir 3 * 16bit per point minst.
i polygon fallet så vinner den lätt med sina 2 polygoner som har bara 6 points (3*16*6/8=324 byte), medans pointcloud behöver 3*16*1920*1080 bits.(12,441,600 byte) OMG!!!!

Men vänta nu , vi är inte riktigt klara. för ännu så länge så har vi inte räknat med bumpmaps. så det blir ett till bitmapplager på 8bits * 1920x1080 för polygon sidan.
Dock så klarar sig pointcloud sidan bättre, eftersom bumpmap kan mappas in i coordinaterna direkt, så det kostar inget extra.
jo, lite mera points blir det för att fylla upp mellanrummen, men det beror helt på hur bumpen ser ut. är det väldigt liten skillnad mellan points så behövs det väldigt lite extra points.

Alternativet är att man skippar bumpmap för polygonen och bygger in bumpen i själva objektet, men detta skulle bli vansinnigt mycket mera polygoner.

Nu tog kaffet slut, så nu orkar jag inte räkna vidare.
Men summa summarum kan man väl säga att så jävla stor skillnad i minnesåtgång är det faktiskt inte om man ska rita väggar och golv.
Ska vi däremot rita mer avancerade objekt som gubbar och orcer, då blir det jobbigare att räkna ut matten. Men man kan ju anta att ett objekt av polygoner med alla dess bitmaps för diverse effekter, och polygoner,, kommer att landa på ungeför samma som pointcloud. då en pointcloud endast behöver points för själva ytan på objektet.
Visst , med tesselering och komprimerade bitmaps så får man ner storleken, men det ju inget som säger att man inte kan använda samma tekniker med pointcloud.

Det blir alltså ung samma minnesåtgång.
och nu ska jag ha kaffe.

Ja om man ange var varje punkt är och med färg osv, det gör man inte ens med polygoner, normalt stripar man polygoner så en rektangel behöver inte mer än 4 points, dvs 3 för första polygonen sedan återanvänds en av sidorna på första polygonen (2 points) så du behöver bara en point för eftervarande polygoner.

dvs att du kan göra en rektangel med endast två points så länge det inte är
den fösta/enda ...

Dom gör säker liknande saker här för jag tror inte den dator dom demonstrerar demot på använder extrema mängder minne.

Men svårt att spekulera när man inte vet hur tekniken ser ut under skalet, och teknik med pointclouds har det forskats i årtionden och det har inte kommit så många stora genombrott tidigare. Så troligtvis är konceptet ganska avancerat.

Visa signatur

There are 10 types of people in the world: Those who understand binary, and those who don't...

Asus Maximus VIII Hero | i7-6700K | ASUS GeForce GTX1070 Strix 8GB | G.Skill F4-2133C15Q-32GRK |

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Lordsqueak
Ok, låt oss tänka på det lite granna, och fundera lite på vad som skulle krävas.
Om vi antar att detaljrikedomen är 1mm per point. (inget som hindrar en från att använda större points för att spara minne.)
En point = en pixel på skärmen, Optimalt.
Då skulle det på en skärm på 1920x1080 synas 1,92meter x 1,08meter. Jag är inte bekant med vilken vinkel man brukar ha på kamerorna i vanligt FPS spel, men känner man till det så skall det gå att räkna ut vilket avstånd betraktaren står på. (jag gissar på ca en meter.)

Om vi antar för enkelhetens skull , att vi har endast ett platt objekt i scenen som är 1,92x1.08meter, så skulle man alltså behöva 1920x1080 points för att nå en detaljrikedom på 1mm. (2,073,600 points).

För att det skall bli någelunda snyggt så skall vi ha med färg och brilljans.
om vi för enkelhetens skull antar att varje "channel" ligger på 8 bitar, så behöver vi 8 bitar för Röd, 8 bitar för Grön, 8 Bitar för Blå och 8 bitar för briljans. 8 bitar är en byte, så vi behöver alltså 4byte för att beskriva en point.

Ett Polygon object som är platt behöver minst 2 polygoner för att bygga upp en rektangel.
Däremot så kommer den att behöva en bitmap som är 1920x1080pixels med 8 bitars RGB , och en till bitmap på 8 bitar för brilljans. totalt 4 byte per pixel.

Med andra ord så krävs det exakt samma mängd minne för en enkel rektangel på 1920x1080, om vi bara räknar på Färg och Brilljans.

men vänta nu, har vi inte glömt något?
jodå det har vi, ett object måste ju ha X Y Z coordinater också.
Så det blir 3 * 16bit per point minst.
i polygon fallet så vinner den lätt med sina 2 polygoner som har bara 6 points (3*16*6/8=324 byte), medans pointcloud behöver 3*16*1920*1080 bits.(12,441,600 byte) OMG!!!!

Men vänta nu , vi är inte riktigt klara. för ännu så länge så har vi inte räknat med bumpmaps. så det blir ett till bitmapplager på 8bits * 1920x1080 för polygon sidan.
Dock så klarar sig pointcloud sidan bättre, eftersom bumpmap kan mappas in i coordinaterna direkt, så det kostar inget extra.
jo, lite mera points blir det för att fylla upp mellanrummen, men det beror helt på hur bumpen ser ut. är det väldigt liten skillnad mellan points så behövs det väldigt lite extra points.

Alternativet är att man skippar bumpmap för polygonen och bygger in bumpen i själva objektet, men detta skulle bli vansinnigt mycket mera polygoner.

Nu tog kaffet slut, så nu orkar jag inte räkna vidare.
Men summa summarum kan man väl säga att så jävla stor skillnad i minnesåtgång är det faktiskt inte om man ska rita väggar och golv.
Ska vi däremot rita mer avancerade objekt som gubbar och orcer, då blir det jobbigare att räkna ut matten. Men man kan ju anta att ett objekt av polygoner med alla dess bitmaps för diverse effekter, och polygoner,, kommer att landa på ungeför samma som pointcloud. då en pointcloud endast behöver points för själva ytan på objektet.
Visst , med tesselering och komprimerade bitmaps så får man ner storleken, men det ju inget som säger att man inte kan använda samma tekniker med pointcloud.

Det blir alltså ung samma minnesåtgång.
och nu ska jag ha kaffe.

Intressant diskussion och roligt med lite matte Du har hittat det tillfälle då minnesåtgången faktiskt inte skiljer särskillt mycket och om man följer ditt resonemang så skulle helt unika miljöer med samma per-pixel detaljrikedom inte ge så stor skillnad. Tyvärr brister det på några punkter:

1. Du har vad jag kan se inga normaler på dina punkter - vilket kommer göra din scen lite tråkig att titta på. Du skulle väl iof kunna räkna fram normalerna från ditt point cloud, men frågan är om det är något du vill göra. Neigbour search är inte lika roligt i ett point cloud som ett par texturslagningar.

2. Du viftar väldigt snabbt bort problemet med de 'luckor' som skapas av att lagra en motsvarande displacead yta. Jag lovar dig att det kommer gå åt en heldel punkter för att fylla 'mellanrummen'.

3. Verkligheten ser inte ut såhär, eftersom det är i väldigt få spel folk nöjer sig med en enda vägg. Om vi istället för dina 2 kvadratmeter utökar det hela till en grotta med +200 kvadratmeter yta och ser på det då å blir bilden annorlunda. I poly/tesselerings-fallet skulle vi antagligen ha en grövre mesh för att representera de grova dragen i grottan och sedan dra på med ett par tileade texturer för att ge finare detaljer, som sedan kan återanvändas på andra ställen i spelet. Du har tyvärr hamnat i läget att du sparat ett point cloud som är gigantiskt och ganska svårt att återanvända. Ditt resonemang förutsätter att jag skulle ha UNIKA texturer överallt och att mappningen mellan skärmpixlar och textur är 1:1. Huvudpoäng här är att detta är inte så man arbetar i verkligheten och din grotta skulle ta enorma mängder minne eftersom du inte kan återanvända ditt point cloud på samma sätt.

4. Jag tar nu ett stort steg framåt och trycker näsan rakt in i din vägg. Jag tycker det ska bli intressant att se hur du angriper detta, ska nya punkter interpoleras fram från resterande point cloud eller ska du säga punkterna nu inte längre är 1:1 med pixlarna och sedan göra någon sorts blur för att inte få aliasing?

Visa signatur

~ Macbook <> Debian-server

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av dakorp
Intressant diskussion och roligt med lite matte Du har hittat det tillfälle då minnesåtgången faktiskt inte skiljer särskillt mycket och om man följer ditt resonemang så skulle helt unika miljöer med samma per-pixel detaljrikedom inte ge så stor skillnad. Tyvärr brister det på några punkter:

1. Du har vad jag kan se inga normaler på dina punkter - vilket kommer göra din scen lite tråkig att titta på. Du skulle väl iof kunna räkna fram normalerna från ditt point cloud, men frågan är om det är något du vill göra. Neigbour search är inte lika roligt i ett point cloud som ett par texturslagningar.

2. Du viftar väldigt snabbt bort problemet med de 'luckor' som skapas av att lagra en motsvarande displacead yta. Jag lovar dig att det kommer gå åt en heldel punkter för att fylla 'mellanrummen'.

3. Verkligheten ser inte ut såhär, eftersom det är i väldigt få spel folk nöjer sig med en enda vägg. Om vi istället för dina 2 kvadratmeter utökar det hela till en grotta med +200 kvadratmeter yta och ser på det då å blir bilden annorlunda. I poly/tesselerings-fallet skulle vi antagligen ha en grövre mesh för att representera de grova dragen i grottan och sedan dra på med ett par tileade texturer för att ge finare detaljer, som sedan kan återanvändas på andra ställen i spelet. Du har tyvärr hamnat i läget att du sparat ett point cloud som är gigantiskt och ganska svårt att återanvända. Ditt resonemang förutsätter att jag skulle ha UNIKA texturer överallt och att mappningen mellan skärmpixlar och textur är 1:1. Huvudpoäng här är att detta är inte så man arbetar i verkligheten och din grotta skulle ta enorma mängder minne eftersom du inte kan återanvända ditt point cloud på samma sätt.

4. Jag tar nu ett stort steg framåt och trycker näsan rakt in i din vägg. Jag tycker det ska bli intressant att se hur du angriper detta, ska nya punkter interpoleras fram från resterande point cloud eller ska du säga punkterna nu inte längre är 1:1 med pixlarna och sedan göra någon sorts blur för att inte få aliasing?

Tja, jag är inget matte geni, jag tog bara ett exempel och funderade vidare därifrån.

1. vet inte riktigt vad du menar med normaler.

2. Det beror på hur stora kontrasterna mellan enskilda punker blir, stora kontraster kommer att kräva mera punkter, medans jämnare ytor, exempelvis stora bulor, kommer att kräva mycket mindre då kontrasterna mellan punkterna blir mindre. Det kommer ju helt att bero på hur stor "surface area" man har.

3. jag ser inget problem med att återanvända delar av pointclouds, det borde gå att komma på någon smart lösning. Dock så förutsätter ju pointclouds tekniken att man bygger upp en scen på ett annat sätt än vad polygons gör. Jag har försökt att förbise trix & knep man använder, då points tekniken kommer att ha sina egna knep & trix som vi ännu inte känner till. I exemplet med grottan så skulle jag nog försöka mig på att använda en kombination av stora points, med ett bumpmap lager som adderas till modellen för finare detaljer. lite samma sak som polygoner gör, fast i en pointcloud så blir bumpmappen "äkta". dock så gör ju tesselering samma grej med objekten så det där med "äkta" bumpmaps är väl något man kan ta för givet numera.

4. Personligen skulle jag använda någon typ av interpolering. annars så får man helt enkelt rita upp den punkt som är närmast. borde vara enkelt att lösa med en simpel float vs integer variabel. dock så blir ju resultatet samma som med vanliga bitmaps. dvs Chunky pixels. så jag vill nog säga att det står 0 - 0 dära.

Anledningen till att jag började räkna på det var att jag själv var nyfiken på vad som skulle krävas. och blev lite förvånad över att det egentligen inte var så stor skillnad i minnesåtgång. exemplet med rektangeln valde jag bara för att ha något som gick lätt att räkna på. om vi hade tagit ett ansikte som objekt så hade ju polygonerna ökat markant i antal , men det vettefan hur man räknar ut hur många som krävs för att uppnå en detalnivå på 1mm.
För mig så verkar det som att ett objekt byggt av polygoner med alla dess bumpmaps och lightmaps och lull lull i slutändan hamnar på ung samma storlek som en pointcloud. tänk då också på mippmapping, dvs samma textur finns i flera storlekar som används beroende på avstånd. något man skulle slippa med en pointcloud.

Skulle man räkna från en ekonomisk synvinkel så kan man väl säga så här,, vad skulle det kosta att dubbla mängden minne på ett grafik kort, Jämnfört med vad det skulle kosta att dubbla GPU's prestanda. och då menar jag utvecklingsmässigt för tillverkaren. (kanske något för intel att satsa på med deras larrabee.)

Permalänk
Medlem

Är detta liknande Ray-Tracing eller handlar det mer om hur man bygger upp polygonerna?

Ray-Tracing är ju annars riktigt coolt. Hoppas jag kommer snart.

Fast RT handlar mer om hur man belyser polygonerna om jag har förstått det rätt.

http://en.wikipedia.org/wiki/Ray_tracing_%28graphics%29

Det vore kul med en artikel om detta med.

Det finns ett företag som skulle kunna bli uppköpta av nVidia eller liknande som heter Caustic Optics.

http://www.caustic.com/

Permalänk
Medlem

Har själv skrivit en point renderer

Har själv skrivit en point renderer för 7 år sedan (gammal teknik). Den hade iofs inte culling (vilket innebär att den inte gör beräkningar för punkter som inte syns).

Påsåendet "Som om inte det vore nog påstår UD att systemet fungerar i mjukvara och att någon grafikacceleration inte är nödvändig." är lite lustigt och felformulerat.

Dagens grafikkort har API:er som stödjer en del matematiska metoder som används vi tex trigometriska uträkningar av tex polygoner. Dvs GPU gör dessa och låter CPU:n göra annat.

En point renderer som anv tex OpenGL vilket min applikation gjorde använder endast CPU:n för att göra beräkningar, inte för att det är bra utan för att jag hade inget trevligt API att anropa så att GPU hjälper till.

Så rätt formulering skulle vara "Dagens grafikkort stödjer inte denna teknik".

För övrigt är point rendering trevligt. Det finns dock en del draw backs.

1. Det blir lätt hål i modellerna vilket gör att resultatet inte ser bra ut.

2. Man kan inte lägga en 2D textur på punkterna. 2D texturerna används väl idag för att skapa önskvärda visuella effekter till en billig kostnad, som tex bump mapping. Där texturen påverkar ytans normaler så att ljuset reflekteras annorlunda och en känsla av en ojämn yta kan ses. Dvs man måste måla varje punkt.

3. Ovanstående punkter resulterar i att det blir väldigt jobbigt att göra modeller samt göra modeller som kan röra på sig utan att tappa kvalité.

4. Ljusättning. Såklart de har problem med det då det kräver en normal. Dvs varje punkt måste isf få en fördefinierad normal och inte varje yta som idag. Samt hur säger man var denna normal pekar? Iom att det inte finns en yta så måste man ge varje en punkt en normal från början, och då är vi tillbaka med problemet att det blir jobbigt att göra modeller.

Men visst är det kul att man försöker sig på detta! Men personligen skulle jag vilja säga att de är långt från mål samt att de måste bestiga en hel del berg. Skulle kunna ladda upp min point renderer senare med en modell av en staty så få ni se hur det ser ut.

Mvh

C

Visa signatur

Intel i7 2600K @ 4.6GHz - ASUS MAXIMUS IV Gene-Z - Zotac GeForce GTX 980 4GB - 16GB Crucial PC12800 - 80GB Intel X25-M - 250GB Samsung 750 - 250GB Samsung 850 - 27" ASUS ROG Swift - Silverstone SG01B-F - Fractal Design Newton R2 1000W - Fractal Design Define C - 240mm Fractal Design water cooler - WASD V2 TKL custom keyboard - Windows 10 64bit

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Lordsqueak
Jag förutsatte att han pratade svenska. annars så blir det 8TB, inte 88TB.

Lycka till att representera en punkt med en enda byte.

En punkt kräver en x, y och en z komponent och dessa representeras oftast av ett 32-bitars flyttal, vilket betyder att varje punkt kräver 12 bytes.

8,000,000,000,000 * 12 ~= 87.31 TB.

Visa signatur

Intel Core i7-3770K | NVIDIA Geforce GTX 980 | 16 GB DDR3 | DELL P2415Q | DELL U2711 | DELL U2410

Permalänk
Medlem
Citat:

Lordsqueak
1. vet inte riktigt vad du menar med normaler.

Alltså normaler som används för shadea ytan. Kan gissningsvis räknas fram med poly/tesselering med blir tråkigare att beräkna för ett point cloud om du inte sparar dem explicit med varje punkt. Om du skulle spara dem med varje punkt så skulle din minnesanvänding öka en smula - men nu var jag lite överpetig.

Citat:

Lordsqueak
2. Det beror på hur stora kontrasterna mellan enskilda punker blir, stora kontraster kommer att kräva mera punkter, medans jämnare ytor, exempelvis stora bulor, kommer att kräva mycket mindre då kontrasterna mellan punkterna blir mindre. Det kommer ju helt att bero på hur stor "surface area" man har.

Du har en poäng, men samtidigt så skulle en yta som displaceas med låg kurvatur kunna ha en lägre upplöst textur eftersom högfrekventa variationer inte är nödvändiga.

Citat:

Lordsqueak
3. jag ser inget problem med att återanvända delar av pointclouds, det borde gå att komma på någon smart lösning. Dock så förutsätter ju pointclouds tekniken att man bygger upp en scen på ett annat sätt än vad polygons gör. Jag har försökt att förbise trix & knep man använder, då points tekniken kommer att ha sina egna knep & trix som vi ännu inte känner till. I exemplet med grottan så skulle jag nog försöka mig på att använda en kombination av stora points, med ett bumpmap lager som adderas till modellen för finare detaljer. lite samma sak som polygoner gör, fast i en pointcloud så blir bumpmappen "äkta". dock så gör ju tesselering samma grej med objekten så det där med "äkta" bumpmaps är väl något man kan ta för givet numera.

Dessa tips&trix är nog ganska viktiga och jag tror faktiskt att det är ett riktigt problem att du inte kan variera och blenda med olika texturer för att bryta upp repititioner och dylikt. Jag tror också att det är svårare att tilea ett point cloud än att blenda två texturer.

Citat:

Lordsqueak
4. Personligen skulle jag använda någon typ av interpolering. annars så får man helt enkelt rita upp den punkt som är närmast. borde vara enkelt att lösa med en simpel float vs integer variabel. dock så blir ju resultatet samma som med vanliga bitmaps. dvs Chunky pixels. så jag vill nog säga att det står 0 - 0 dära.

Men du har ett tråkigt problem här, även om det skulle gå att göra så som du föreslår så måste du göra en kostsam neigbour search för att hitta de värden du vill interpolera. I en 2D textur är det väldigt enkelt och kommer ofta med mipmappsen som du nämner nedan. Sen att du skulle klara dig utan någon form av LOD-system har jag mycket svårt att tro, du skulle nog få ganska rejäla aliasing problem.

Citat:

Murpie
Är detta liknande Ray-Tracing eller handlar det mer om hur man bygger upp polygonerna?

Ray-Tracing är ju annars riktigt coolt. Hoppas jag kommer snart.

Fast RT handlar mer om hur man belyser polygonerna om jag har förstått det rätt.

Enkelt beskrivet handlar ray-tracing inom datorgrafiken om att du utgår från skärmens pixlar och spårar en stråle bakåt genom scenen för att beräkna hur mycket ljus (och i förlägningen vilken färg) pixeln skall ha. Ray-tracing-mjukvara använder oftast polygon-baserade eller enkla implicita modeller för att hitta intersections (snackar vi voxlar snackar vi ray-casting). Belysningen utav polygonerna är en annan femma och har egentligen ingenting med grunderna i ray-tracing att göra. Huruvida de använder någon form av ray-tracing (läs ray/prmitiv intersection) för att söka i point cloudet har jag ingen aning om, men jag tror inte det skulle gå så snabbt att göra det.

Citat:

Teobald
2. Man kan inte lägga en 2D textur på punkterna. 2D texturerna används väl idag för att skapa önskvärda visuella effekter till en billig kostnad, som tex bump mapping. Där texturen påverkar ytans normaler så att ljuset reflekteras annorlunda och en känsla av en ojämn yta kan ses. Dvs man måste måla varje punkt.

Ren nyfikenhet, är det alltså begränsningar i OpenGL vi talar om? Inga texturefetches för points?

Citat:

Teobald
4. Ljusättning. Såklart de har problem med det då det kräver en normal. Dvs varje punkt måste isf få en fördefinierad normal och inte varje yta som idag. Samt hur säger man var denna normal pekar? Iom att det inte finns en yta så måste man ge varje en punkt en normal från början, och då är vi tillbaka med problemet att det blir jobbigt att göra modeller.

Inte nödvändigvis, man kan faktiskt estimera en normal från ett point cloud - t.ex. med hjälp av Smoothed-Particle Hydrodynamics. (Det är ju ingen dröm, men det går).

Visa signatur

~ Macbook <> Debian-server

Permalänk

Fint anklagande i artikeltiteln där, "påstår sig ha tagit fram en teknik...".

Konstigt det där, att kända företags löften aldrig ifrågasätts, trots deras "track record" att lova runt och hålla tunt. Men den här firman, vafan, aldrig hört talas om. De hittar nog bara på.

Trots att videorna uppenbarligen visar ett proof of concept som borde skingra dessa misstankar. Sånt ser man inte från de stora företagen.

Men orsaken till att de inte hållt även denna videosnutten för sig själva är väl att de verkligen behöver en rejäl budget för att ta det till nästa steg och anställa animatörer och modellerare, fler kodare för att implementera animation, skuggning och vettiga editorer.

Det hade nog varit bättre att åtminstone inte släppa videon HELT publikt. Men det är inte alla utvecklare förunnat att ha råd att åka runt och visa upp teknologi i hemlighet över hela världen.

Och det är klart att de inte talar om hur de gör. Detta är ju helt uppenbarligen en teknologi som har framtiden för sig, och kan man koda om den för att köra den på grafikkortet så har ju grafikkortsbolagen en chans att ta ett stort kliv framåt.

Har ju inget med voxels eller vanlig rendering/raytracing att göra, även om naturligtvis den utvalda geometrin i varje pixel kan renderas enligt valfri teknik.

De säger ju att de byggt ett system för att omvandla och lagra geometri så att den snabbt kan hittas med en custom "sökmotor" genom en raypick. Varför inte tro på dem?

Visa signatur

[4790k@4.6]+[RTX 3070 OC]+[16GB]+[4x SSD]+[NZXT+700W Gold]+[Win7]+[2x Samsung SA27950D <3]+[Topre TKL]+[G403 Hero wired]+[HyperX Cloud Alpha S]+[KingKong 2 Pro]. ZBook 17 G5, Quadro P3200, Win11.

Permalänk
Medlem

"Ren nyfikenhet, är det alltså begränsningar i OpenGL vi talar om? Inga texturefetches för points?"

Nu ska jag inte skriva saker i sten, men när jag höll på mycket med datorgrafik så fanns det inte stöd för det. Numera programmerar jag online spel såsom poker osv. Saknar datorgrafiken lite känner jag nu. Ska ta reda på om det finns stöd för det idag! Återkommer strax.

"Inte nödvändigvis, man kan faktiskt estimera en normal från ett point cloud - t.ex. med hjälp av Smoothed-Particle Hydrodynamics. (Det är ju ingen dröm, men det går)."

Jo, självklart. Jaf har ljussättning i mitt program också. Men ser att du också förstår kruxet.

Visa signatur

Intel i7 2600K @ 4.6GHz - ASUS MAXIMUS IV Gene-Z - Zotac GeForce GTX 980 4GB - 16GB Crucial PC12800 - 80GB Intel X25-M - 250GB Samsung 750 - 250GB Samsung 850 - 27" ASUS ROG Swift - Silverstone SG01B-F - Fractal Design Newton R2 1000W - Fractal Design Define C - 240mm Fractal Design water cooler - WASD V2 TKL custom keyboard - Windows 10 64bit

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av MagnusL
Lycka till att representera en punkt med en enda byte.

En punkt kräver en x, y och en z komponent och dessa representeras oftast av ett 32-bitars flyttal, vilket betyder att varje punkt kräver 12 bytes.

8,000,000,000,000 * 12 ~= 87.31 TB.

atomontage behöver mindre än en bit per punkt, på 12 byte kan du representera mer än 100 punkter

Visa signatur

mobo Asus M4A88TD-M EVO/USB3 cpu 1100T kylare Noctua NH-D14
gpu RX 460 passive ram 16GB DDR3 1600MHz ssd Samsung 850 EVO 250GB
psu Corsair AX 850 skärmar 3 * 40" NEC P401

Permalänk
Medlem

UNDERBART!
Jag tror stenhårt på det.
Google kan söka hela jävla internet på nån millesekund med deras gissnings-algoritm, och det här är ju egentligen samma sak.
Ingen som kommit på att använda det för färgade punkter i ett koordinatsystem innan bara verkar det som.

De som pysslat med z-brush och liknande förstår hur man modellerar sånt här.
Kan man tänka sig t ex en matematiskt rund sfär täckt med prickar, så förstår man skillnaden mellan runda och kantiga former.

Är det så att varje spel blir större än en bd-skiva och omöjlig att göra i realtime, så är det ju ändå ett bautasteg för film-branschen.
Tänk att ha en veckas renderingstid istället för ett halvår.

Verkar va många som inte alls förstår det häftiga och smarta med det här, och pratar shaders och sånt.

Det går t ex inte att prata likhet mellan en elmotor och en förbränningsmotor.
Totalt olika teknik bakom, trots att man får samma resultat.

Datornördar är skillade som fan på programmering, men ofta kassa på grafik.
Detaljerna finns ju där i överflöd så man kan gråta av lycka, men inte på rätt ställe bara.

Permalänk
Inaktiv

Riktigt coolt. Hoppas detta är framtiden!

Finns flera dokumentärsfilmer om detta på youtube, se dom!

Permalänk
Medlem

Härligt med så otroligt fördomsfulla människor.

För er som är för lata för att verkligen se på alla videos så finns ganska mycket information, om man nu kan engelska och väljer att lyssna.

Kritikers påståenden:
Det skulle ta låååång tid för grafiker att rita objekt punkt för punkt.
Och det ser ju skit ut på deras ->tech-demo<-.

Svar: Det sägs att man kan (vilket dom inte gjort) använda flera olika tekniker för att skapa objekt som blir fantastiskt realistiska, bla laser skanning som ger JUST punktmoln-data, dvs en exakt kopia av verkligheten. Nu har dom inte haft tid eller brytt sig, för dom är PROGRAMMERARE och MATEMATIKER inte grafiker. Om det vore snyggt skulle jag haft betydligt mindre tillit, för då är dom troligen sämre programmerare och matematiker, för dom söker ju pengar för dom inte har råd med att polera ist för att skapa.

Kritikers påståenden:
Kommer kräva vansinnigt mycket minne.

Svar: Nej då. Man har inte unika modeller till allt idag så varför måste man ha det till detta? Och ytterst troligt så kan man ladda in objekt när dom behövs (dom använder ju som sagt matematik för att lösa saker och ting). Och inte behöver man ha samma mängd punkter per mm på alla objekt. Visst, det kommer använda mycket minne men liksom polygon grafik som kommer det att utvecklas och bli bättre. Och bara för att dom VISAR att det går att ha trillioner punkter så måste man inte ha det, det är ju ett tech-demo...

Kritikers påståenden:
ATI, Nvidia och Intel vill inte och kommer inte satsa på detta.

Svar: Kanske inte det (men dom är dumma om dom inte gör det, och Intel har ju absolut inget att förlora). Det finns andra som kommer se en möjlighet att ta en helt ny marknad, och gotta sig ngt vansinnigt när dom gamla jättarna (se tex Creative) dör ut alt får byta inriktning när deras nisch försvinner. Och det lär ju gå att kombinera dom olika teknikerna.

Kritikers påståenden:
Polygoner är ju så väletablerat att detta inte har en chans.

Svar: Jo visst. Skrivmaskiner var väl etablerade en gång i tiden. Separata ljudkort lika så. Och LP skivor. Och häst med vagn osv.
Kommer det en mycket bättre teknik spelar det ingen roll (i längden) om det finns en etablerad (sämre) teknik. Kommer sannolikt inte döda polygoner över en natt, även om dom inte längre kan bidra med ngt bättre.

Kritikers påståenden:
Det är för bra för att vara sant.

Svar: Nä, om dom nu inte helt ljuger och detta är ray-tracat med en ytterst dålig motor så fungerar det redan idag (jo visst inte bra men det är ju det dom vill ha pengar för att fixa) och dom säger TYDLIGT att det är minst 16 månader bort till en färdig produkt.

Kritikers påståenden:
Om det gick skulle redan Nvidia, AMD och Intel gjort det.

Svar: Nä, för i så fall vore första sökmotorn lika bra som google idag, för det är ju liknande algoritmer som gör skillnaden. Och nä, dom är inte dom första med denna teknik, dom är dom första som har tillräckligt bra algoritm för att kunna göra det bra (får vi hoppas). Och vad säger att ingen annat inte håller på med denna teknik bakom stängda dörrar?

Skall tillägga att visst jag är personligen aningen skeptisk, med det är jag hälsosamt nog mot allt. Men jag har också ett öppet sinne och kan se en fantastisk möjlighet om nu dom kan lösa dom problem som naturligtvis finns med en helt ny teknik. För det är ju som med el-bilar idag, nära oanvändbara idag men med potential att bli så vansinnigt mycket bättre än en bensin/diesel bil i framtiden.

Säger det åter igen, glöm inte att detta är ett tech-demo dvs man visar upp potentialen och inte säljer en färdig produkt.

Permalänk
Medlem

Och troligen är det fler än jag som inte fick upp youtube klippet i artikeln (vete fan varför) och missade deras senaste video.
Så min referens till 16 månader i dom första videon stämmer bra då dom kommit långt nu

Måste säga att det ser helt fantastiskt ut nu med färg och skuggor och allt annat. Så det betyder att deras första tafatta videos drog till sig investerare iaf, vilket gläder mig mycket. Men som dom säger, dom är inga speltillverkare... Så det kan ju bara bli bättre!

Permalänk
Medlem

Varje punkt behöver ju inte ha en egen data mängd.
Modeller används ju ändå.
Modellernas filer blir ju större, men om man tar det som de klagar skulle även nuvarande kartor vara enorma filer.
Det är ju en terräng fil med en massa placerings data för existerande modeller.

Visa signatur

Main:
O11 XL, MSI 2080 TI GXT, AMD 3950X, Asus CH VIII Hero, EKWB WC Dual 360, HX1200

Media Dator
Phanteks P400, Strix 970, 6700K (delid), Asus Maxmimus VIII Hero Alpha, Corsair H100V2, TX750