-
X-Received: by 10.140.96.197 with SMTP id k63mr139370qge.0.1403952485787; Sat, 28 Jun
2014 03:48:05 -0700 (PDT)
X-Received: by 10.140.96.197 with SMTP id k63mr139370qge.0.1403952485787; Sat, 28 Jun
2014 03:48:05 -0700 (PDT)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!goblin2!goblin.stu.neva.ru!feeder.erje.net!us.feeder.erje.net!news.glo
rb.com!hn18no16496960igb.0!news-out.google.com!a8ni0qaq.1!nntp.google.com!i13no
2342904qae.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mai
l
Newsgroups: pl.comp.programming
Date: Sat, 28 Jun 2014 03:48:05 -0700 (PDT)
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=93.154.170.198;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 93.154.170.198
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4...@g...com>
Subject: cpu shading by sse intrinsics
From: firr <p...@g...com>
Injection-Date: Sat, 28 Jun 2014 10:48:05 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:206077
[ ukryj nagłówki ]w moim rasteryzerze mam blog do flat shadingu
trojkatów od 4rech swiateł - wyglada on wyjatkowo niechlujnie moim zdaniem ale do
końca nie wiem co
z nim zrobic
// input: float x1, y1, z1, x2, y2, z2, x3, y3, z3;
static float3 lightDir1= {0.2, -1.6, -1.7 };
static float3 lightDir2 = {0.5, -0.7, 20.3 };
static float3 lightDir3 = {-0.5,-0.3, -0.6 };
static float3 lightDir4 = {-0.5, 1.3, 0.6 };
static float3 lightColor1= {.4, .414, .515 };
static float3 lightColor2 = {.4145, .451, .543 };
static float3 lightColor3 = {.584, .51414, .43 };
static float3 lightColor4 = {.41, .44, .3414 };
float3 u = {x2-x1, y2-y1, z2-z1 };
float3 v = {x3-x2, y3-y2, z3-z2 };
float3 normal = cross_(u,v);
// normal.x = (y2-y1)*(z3-z2) - (z2-z1)*(y3-y2);
// normal.y = (z2-z1)*(x3-x2) - (x2-x1)*(z3-z2);
// normal.z = (x2-x1)*(y3-y2) - (y2-y1)*(x3-x2);
normalize(&normal);
float s1 = dot(normal, lightDir1);
float s2 = dot(normal, lightDir2);
float s3 = dot(normal, lightDir3);
float s4 = dot(normal, lightDir4);
if(s1<0) s1=0;
if(s2<0) s2=0;
if(s3<0) s3=0;
if(s4<0) s4=0;
int b = (color&0x000000ff);
int g = (color&0x0000ff00)>>8;
int r = (color&0x00ff0000)>>16;
float lr= .1 + (s1*lightColor1.x + s2*lightColor2.x + s3*lightColor3.x+
s4*lightColor4.x);
float lg= .1 +(s1*lightColor1.y + s2*lightColor2.y + s3*lightColor3.y+
s4*lightColor4.y);
float lb= .1 + (s1*lightColor1.z + s2*lightColor2.z + s3*lightColor3.z+
s4*lightColor4.z);
r*=lr;
g*=lg;
b*=lb;
if(r>255) r=255;
if(g>255) g=255;
if(b>255) b=255;
return rgb(b,g,r);
chodzi o dwie rzeczy
1) jak ew przyspieszyc czy ladniej to zapisac z poziomu c
2) jak przepisac to i przyspieszyc przy pomocy sse intrinsics (uzywam mingw gcc 4.7
wiec tak zeby poszlo pod tym kompilatorem)
glownie chodzi o ta drugą rzecz, nie mam moze nawet w sumie az tak duzo czasu na to
;/ ale z drugiej strony troche podlubac by sie przydalo ;\
Następne wpisy z tego wątku
- 29.06.14 12:46 firr
- 30.06.14 10:42 Wojciech Muła
- 30.06.14 12:16 firr
- 30.06.14 12:27 firr
- 02.07.14 01:20 firr
- 02.07.14 18:12 Edek
- 02.07.14 20:13 firr
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=