View previous topic :: View next topic |
Author |
Message |
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sat Oct 13, 2007 9:28 pm Post subject: |
|
snake5 wrote: | bet ar surfacēm šo izdarīt ir viegli!!! |
Ar šeideriem tikpat viegli. Un kāpēc darīt lēnāko veidu, ja abi ir viegli, m?
Quote: | ew pag! ienāca prātā bbox tests - vispirms pārbauda vai punkta x/y ir robežās un tad tikai attāluma testu uz šiem pikseļiem.. jo sqrt ir palēna funkcija.. |
Atkal savu offtopiku dzen.. Tak nepiemēslo citu cilvēku topikus! Taisi jaunu, ja ir tēma, par ko runāt.
Last edited by bubu on Sat Oct 13, 2007 9:32 pm; edited 1 time in total |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Sat Oct 13, 2007 9:32 pm Post subject: |
|
Viss straadaa un probleema bija taas lielaas tekstuuras samplosanaa izrietot no mazaas UV, Lielaas un mazaas tekstuuras izmeeru attieciibas un kursora poziicijas :
float Pos; //Apgabalaa no 0.0-1.0 -> kursors
float Ratio; // 4096.0/BrushIzmeers
float TexelSize = 1.0f / 4096.0f; // texelja izmeers
Izraadaas sii itkaa pareizaa pieeja nosapmpljo 1 texeli virs vajadziigaa apgabala -> notiek izsmeereesanaas
Code: |
float4 color0 = tex2D(textureSampler0, texCoord/Ratio + Pos);
|
Salaboju atnjemot pusi no texelja
Code: |
float4 color0 = tex2D(textureSampler0, texCoord/Ratio + Pos - TexelSize/2);
|
P.S Lai iztiktu bez liekas daliisanas iveidojam HalfTexelSize = 1.0f / 8192.0f |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sat Oct 13, 2007 9:35 pm Post subject: |
|
Ah jā, tipiskā problēma ar to, kas skaitās pikseļa koordināte - tā centrs vai stūris.. Pie tam DirectX dara pilnīgi otrādāk nekā OpenGL.
Storm wrote: | P.S Lai iztiktu bez liekas daliisanas iveidojam HalfTexelSize = 1.0f / 8192.0f |
Šeidera kompilētājs ir pietiekami prātīgs, lai pats to izdarītu, vari droši ticēt man :)
Viņš visus konstantos lielumus māk savākt kopā un kodā ieģenerēt tikai vienu konstanti visas konstantās izteiksmes vietā.
Last edited by bubu on Sat Oct 13, 2007 9:38 pm; edited 2 times in total |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Sat Oct 13, 2007 9:36 pm Post subject: |
|
bubu wrote: |
Šeidera kompilētājs ir pietiekami prātīgs, lai pats to izdarītu, vari droši ticēt man |
Ko var zinaat XD
Ok, back to work! |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Oct 13, 2007 9:38 pm Post subject: |
|
bubu wrote: | Atkal savu offtopiku dzen.. Tak nepiemēslo citu cilvēku topikus! Taisi jaunu, ja ir tēma, par ko runāt. | nekāds offtopiks! tas bija tieši par šeideri domāts! _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sat Oct 13, 2007 9:53 pm Post subject: |
|
Pirmkārt: šeiderī ir labāk lietot sqrt nekā kautkādas if instrukcijas. Daudz labāk. Videokartei "patīk" lineārs kods, nevis lēkajošs turpu-šurpu.
Otrkārt: boundig-box testam nekādas kvadrātsaknes nav vajadzīgas. Tikai pāris if'i.
Treškārt: kur kaut vienā vietā šajā topikā kādam ir vajadzējis sqrt funkciju, izņemot tevi pašu? |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Oct 13, 2007 9:55 pm Post subject: |
|
attālums - sqrt(sqr(x)+sqr(y))
ah, fuu, neievēroju, tas jau ir apiets!
hmm, nāk prātā viena ideja.. bet vēl nav pavisam noformājusies... nedaudz saistīta ar vertexshaderi...
ew, bet ir taču ātri! es gan tagad uz 2048x2048 mēģinu bet nu man neraustās tagad, kad uz rendermonkey skatos!
nu vispār nezinu, kā 300 fps varētu nosaukt par raustīšanos _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Sat Oct 13, 2007 11:09 pm Post subject: |
|
Kad tu saliidzinaasi to savu briinumu ar attieciigu implementaaciju shaderos tad arii sauksi 300fps prieks attieciigaas operaacijas par raustiisanos. |
|
Back to top |
|
|
|