Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

GLSL-stöd på 10.4.3

Tråden skapades och har fått 18 svar. Det senaste inlägget skrevs .
1

Hej, försöker komma igång med shader-programmering på en mac med Panther installerad. Har insett att det inte funkar.

- Funkar det med senaste Tiger? Och om det då funkar, till vilken grad?

- Räcker det med extensionsstöd för GL_ARB_fragment_shader och GL_ARB_vertex_shader?

- Vad är skillnaden mellan att skriva shaders på en mac och en pc?

Tacksam för svar!

//db

  • Medlem
  • Uppsala
  • 2006-02-09 11:54

GLSL stödet blev tillgängligt iom 10.4.3 och det verkliga kravet för att köra shaders oavsett plattform är att GL_ARB_shading_language_100 eller likartad, sträng finns, den deklarerar nämligen om själva språket finns eller ej, GL_ARB_fragment_shader, GL_ARB_vertex_shader definerar "bara" om resp. fragment eller vertex parsers finns, kompileringen av shaders görs i språk tillägget.

Själva funktionaliteten för GLSL i OS X är till stor del styrt av vad hårdvaran klarar av och där är det samma regler som för PC, dvs trial and error på vad som blir accelererat och inte.

Men det är inga tekniska begränsningar på att skriva en shader på PC eller Mac iom att shader koden kompileras i drivrutinerna, däremot kan det vara så att olika drivrutiner kompilerar koden olika bra, men inte mycket att göra åt.

Min personliga åsikt är att OpenGL Shader Builder i OS X är mycket smidig att skriva med, numera finns det en som är rätt hygglig på PC men jag föredrar apples verktyg.

Okej, tack för svaret!

Jag laddar in alla mina extensions med GLEW och skriver ut tillgängliga extensions med glGetString(GL_EXTENSIONS). "GL_ARB_shading_language_100" finns då inte med! Gör jag då på rätt sätt att kolla om "GL_ARB_shading_language_100" finns?

Menar du att jag måste skaffa TIger för att få "GL_ARB_shading_language_100" eller måste jag även byta grafikkort? Just nu har jag NVIDIA GeForce FX 5200.

  • Medlem
  • Uppsala
  • 2006-02-09 14:12

Ditt grafikkort stödjer GLSL, däremot måste du uppgradera till Tiger och version 10.4.3 för att få tillgång till GL_ARB_shading_language_100 tillägget. Det finns inte i någon tidigare version av OS X vad jag vet oavsett hårdvara. Och ja, du gör rätt i att leta i strängen du får från glGetString efter tillgängliga tillägg. Finns inte det man behöver i strängen kan man inte använda det.

Sedan kan jag väl tillägga att ett GeForce FX5200 inte stödjer alla funktioner i GLSL dock kommer man rätt långt på det, det kan även tilläggas att det idagsläget inte finns något grafikkort som stödjer GLSL med 100% hårdvaru accelerering.

Tack igen,

Ska genast gå ner och köpa Tiger!
(kanske hör av mig med fler frågor senare)

hälsn.
//db

  • Medlem
  • Stockholm
  • 2006-02-09 15:54

...och för en icke-insatt, vad är "shader-programmering"...!?

-Torkel

  • Medlem
  • Uppsala
  • 2006-02-09 16:11

Shader programmering är programmering där man påverkar existerande geometri i en scen, för att uppnå effekter utan att tillföra ytterligare geometri eller texturer. Det vi pratat om i tråden hittils är shaders i OpenGL, något som ska utföras direkt i grafikhårdvaran.

nubbe har väl i stort rätt, men ska man vara aningen noggrannare så är det inte så mycket fråga om att påverka geometrin som att bestämma pixelvärden på betydligt mer avancerade sätt än man gör med OpenGL's fixa pipeline. Bump mapping, pixelvis skuggning mm är lämpliga problem för shaders. Och det är riktigt kul också. I höstas drog jag igång en ny kurs här på universitetet (civing-nivå) med shaderprogrammering som en viktig del.

5200 är i mesigaste laget. Den stödjer inte tredje generationens shaders.

Vad innebär 3:e generationens shaders? Vilka grafikkort är att rekommendera för att få den "3:e generationen"? (för stationär mac) Jag kommer själv att programmera ganska avancerat ljus inom de närmaste månaderna.

Vid vilket universitet är du aktiv Ingemar?

hälsn.
/db

NVidias 6000-serie och upp är tredje generationen (till och med billiga 6200). Utbudet för Mac är inte imponerande, och dyrt, men 6600 finns för en någorlunda acceptabel slant.

Jag undervisar i Linköping, för C, D, Y, IT mm. Tyvärr inte på Macar, fast jag skulle vilja. Men det är i alla fall på Linux, det näst bästa.

Hm, intressant. Jag själv har pluggat civ.ing. Medieteknik på LITH och har nu satt igång mitt exjobb.
Antar att du känner Stefan Gustavsson då...

Är ett Nvidia-kort att rekommendera framför ett ATI eller någon annan tillverkare?

  • Medlem
  • Uppsala
  • 2006-02-09 22:13

Ur ett OpenGL perspektiv så har "generation" på kortet mindre betydelse om man är ute efter att först och främst lära sig GLSL, för GLSL har som jag skrev tidigare inte ens 100% hårdvaru stöd i någon av dagens kort, generations terminologin passar bättre på DirectX.
Men visst är 5200 kortet i sämsta laget för sk. shader programmering, men för att komma igång är det en bra start speciellt som grafikkort för mac är dyrare än pc:ns.

ATI & Nvidia korten har lite olika egenskaper jag upplever att ATI presterar något bättre på mac än nvidia, men kan vara fel. Däremot vet jag att nvidia korten är lite generösare med hur textueringskedjan får återanvändas i shading languages mot ATI som istället är generösare med tempoära variabler och mindre generösa med textureringskedjan, i praktiken styr det lite hur man lägger får lägga upp sina shaders, lite utav en vanesak skulle jag säga.
Detta märks inte lika tydligt i GLSL som i GL_ARB_fragment_program.

Men för att återknyta till kort val så skulle jag låta plånboken välja om du ska satsa på ett nytt idag dvs.

Hm, jag är inte bara ute efter att "lära" mig GLSL utan även använda det ganska friskt. Kommer att behövas i projektet som jag är involverad i. Plånboken ja...ja, tyvärr är det väl så...

  • Medlem
  • Uppsala
  • 2006-02-09 22:43

Om det projeket du ska använda det i inte kräver realtidsrendering kan du alltid köra apples software render för GLSL, den implementerar hela API:et i förhållandevis bra prestanda dock inte samma nivå som hårdvaru accelerering ger.
Vad är projektets syfte? att göra något snabbt i hårdvara eller undersöka hurvida något är möjligt via OpenGL & hårdvaru acc.? Ev. kanske du/ni ska kolla upp om det går att fixa sponsoring för exjobbet och på så sätt få råd med bra grafikkort.

Jodå, det är en real-tids-applikation som handlar om ljus och syftet handlar just om möjligheten att göra detta så hårdvarubaserat och plattformsoberoende som möjjligt. Därav valet av openGL/GLSL/GLUT/GLEW.
Hehe, sponsring...nej, det ska nog inte behövas...

Varför är du så intresserad av openGL och shaders? För övrigt så uppdaterade jag idag till Tiger och de shaders som jag hittills provat funkar utmärkt!

  • Medlem
  • Uppsala
  • 2006-02-09 23:35

Varför jag är intresserad av OpenGL och shaders är lite svårt att förklara men har väl och göra med att jag mer eller mindre ha jobba med OpenGL sen '99 i någon form antingen professionellt eller som hobby och försöker hela tiden hålla koll på vad som händer. Har ett stort intresse av 3D grafik och programmering, antar att det är en kort förklaring/summering till varför jag är intresserad och instatt i OpenGL

Ang. ditt val där så skulle jag rekommendera att du köra med SDL istället för GLUT, jag anser att man får bättre kontroll över renderingsloopen med SDL än med GLUT.

Hej David,

Har du inte tillgång till Texturing & Modeling, läroboken i procedurella (metoder för) bilder? Jag har ett vagt minne av att de tog upp GLSL. Eller så var det Rendermans dito...

Ah, snart får jag min nya Mac förresten. Då kommer jag upp och hälsar på och tittar in hos dig på jobbet. Tjo!

Hej Mattias (arre???), jodå, jag har den boken men har för mig att det är mycket renderman... lite om MOJO WORLD också har jag för mig...balla grejer...

Jomenvisst är det så! Visste inte att du var medlem här, men det är klart, med tanke på vad du grejar med så var det väl inte annat än rimligt

Nu ska jag ner till ProNova och kolla in vad Sciss har för sig! Vi hörs o ses!

/ M

1
Bevaka tråden