Triangle und ShadedTriangle
Übersicht

taskyBetreff: Triangle und ShadedTriangle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich hab diesen Code schon mal im letzten Forum gepostet. Damit könnt ihr gefüllte Dreiecke und Dreiecke mit weichen Farbübergängen zeichnen. Der Code ist nicht von irgendwo übernommen (bzw. übersetzt) worden, sondern stammt von mir. Er ist sehr schnell, aber dafür auch ziemlich gross. Befehle: InitTriangle() Initialisiert den Viewport TriangleViewPort(wLeft, wTop, wRight, wBottom) Beschreibt den eingegrenzten Bildschirmausschnitt, in dem das Dreieck gezeichnet werden soll Triangle(x0, y0, x1, y1, x2, y2, rgb, [buffer]) Zeichnet ein einfaches, gefülltes Dreieck ShadedTriangle(x0, y0, x1, y1, x2, y2, r0, g0, b0, r1, g1, b1, r2, g2, b2, [buffer]) Zeichnet ein gefülltes Dreieck mit einem Farbübergang Code: [AUSKLAPPEN] Global winLeft
Global winRight Global winTop Global winBottom Graphics 1024, 768, 32, 1 SetBuffer BackBuffer() InitTriangle() r = 500 While Not KeyHit(1) Cls a# = a# + 1 x0 = 512 + Sin(a) * r y0 = 384 + Cos(a) * r x1 = 512 + Sin(a + 120) * r y1 = 384 + Cos(a + 120) * r x2 = 512 + Sin(a + 240) * r y2 = 384 + Cos(a + 240) * r LockBuffer ShadedTriangle(x0, y0, x1, y1, x2, y2, 255, 0, 0, 0, 255, 0, 0, 0, 255) UnlockBuffer Flip 0 Wend Function InitTriangle() winLeft = 0 winTop = 0 winRight = GraphicsWidth() - 1 winBottom = GraphicsHeight() - 1 End Function Function TriangleViewPort(wLeft, wTop, wRight, wBottom) winLeft = wLeft winTop = wTop winRight = wRight winBottom = wBottom End Function Function Triangle(x0, y0, x1, y1, x2, y2, rgb, buffer = 0) Local xc1, xp1, xp, dx1, dy1, df1, dm1, mc1, xs1 Local xc2, xp2, yp, dx2, dy2, df2, dm2, mc2, xs2 Local ey If buffer = 0 buffer = GraphicsBuffer() If y0 > y1 tmp = y0 y0 = y1 y1 = tmp tmp = x0 x0 = x1 x1 = tmp End If If y0 > y2 tmp = y0 y0 = y2 y2 = tmp tmp = x0 x0 = x2 x2 = tmp End If If y1 > y2 tmp = y1 y1 = y2 y2 = tmp tmp = x1 x1 = x2 x2 = tmp End If If y0 <> y1 If y1 = y2 ey = y1 Else ey = y1 - 1 End If dx1 = x1 - x0 dy1 = y1 - y0 df1 = dx1 / dy1 dm1 = Abs(dx1 Mod dy1) If x0 > x1 xs1 = -1 Else xs1 = 1 End If dx2 = x2 - x0 dy2 = y2 - y0 df2 = dx2 / dy2 dm2 = Abs(dx2 Mod dy2) If x0 > x2 xs2 = -1 Else xs2 = 1 End If xp1 = x0 mc1 = dm1 xp2 = x0 mc2 = dm2 For yp = y0 To ey xc1 = xp1 xc2 = xp2 If xc1 <> xc2 If yp >= winTop If yp <= winBottom If xc1 > xc2 tmp = xc1 xc1 = xc2 xc2 = tmp End If If xc1 <= winRight If xc2 >= winLeft If xc1 < winLeft xc1 = winLeft If xc2 > winRight xc2 = winRight For xp = xc1 To xc2 WritePixelFast xp, yp, rgb, buffer Next End If End If End If End If End If xp1 = xp1 + df1 mc1 = mc1 + dm1 If mc1 >= dy1 mc1 = mc1 - dy1 xp1 = xp1 + xs1 End If xp2 = xp2 + df2 mc2 = mc2 + dm2 If mc2 >= dy2 mc2 = mc2 - dy2 xp2 = xp2 + xs2 End If Next Else If y1 = y2 Return dx2 = x2 - x0 dy2 = y2 - y0 df2 = dx2 / dy2 dm2 = Abs(dx2 Mod dy2) If x0 > x2 xs2 = -1 Else xs2 = 1 End If xp2 = x0 mc2 = dm2 End If If y1 <> y2 dx1 = x2 - x1 dy1 = y2 - y1 df1 = dx1 / dy1 dm1 = Abs(dx1 Mod dy1) If x1 > x2 xs1 = -1 Else xs1 = 1 End If xp1 = x1 mc1 = dm1 If y2 > winBottom y2 = winBottom For yp = y1 To y2 xc1 = xp1 xc2 = xp2 If xc1 <> xc2 If yp >= winTop If yp <= winBottom If xc1 > xc2 tmp = xc1 xc1 = xc2 xc2 = tmp End If If xc1 <= winRight If xc2 >= winLeft If xc1 < winLeft xc1 = winLeft If xc2 > winRight xc2 = winRight For xp = xc1 To xc2 WritePixelFast xp, yp, rgb, buffer Next End If End If End If End If End If xp1 = xp1 + df1 mc1 = mc1 + dm1 If mc1 >= dy1 mc1 = mc1 - dy1 xp1 = xp1 + xs1 End If xp2 = xp2 + df2 mc2 = mc2 + dm2 If mc2 >= dy2 mc2 = mc2 - dy2 xp2 = xp2 + xs2 End If Next End If End Function Function ShadedTriangle(x0, y0, x1, y1, x2, y2, r0, g0, b0, r1, g1, b1, r2, g2, b2, buffer = 0) Local xc1, xp1, xp, dx1, dy1, df1, dm1, mc1, xs1 Local xc2, xp2, yp, dx2, dy2, df2, dm2, mc2, xs2 Local rcg1, rg1, dfrg1, mcrg1, dmrg1, rsg1, drg1, rg2, dfrg2, mcrg2, dmrg2, rcg2, rsg2, drg2 Local gcg1, gg1, dfgg1, mcgg1, dmgg1, gsg1, dgg1, gg2, dfgg2, mcgg2, dmgg2, gcg2, gsg2, dgg2 Local bcg1, bg1, dfbg1, mcbg1, dmbg1, bsg1, dbg1, bg2, dfbg2, mcbg2, dmbg2, bcg2, bsg2, dbg2 Local d, r, dfr, mcr, dmr, rs, dr, g, dfg, mcg, dmg, gs, dg, b, dfb, mcb, dmb, bs, db Local ey If buffer = 0 buffer = GraphicsBuffer() If y0 > y1 tmp = y0 y0 = y1 y1 = tmp tmp = x0 x0 = x1 x1 = tmp tmp = r0 r0 = r1 r1 = tmp tmp = g0 g0 = g1 g1 = tmp tmp = b0 b0 = b1 b1 = tmp End If If y0 > y2 tmp = y0 y0 = y2 y2 = tmp tmp = x0 x0 = x2 x2 = tmp tmp = r0 r0 = r2 r2 = tmp tmp = g0 g0 = g2 g2 = tmp tmp = b0 b0 = b2 b2 = tmp End If If y1 > y2 tmp = y1 y1 = y2 y2 = tmp tmp = x1 x1 = x2 x2 = tmp tmp = r1 r1 = r2 r2 = tmp tmp = g1 g1 = g2 g2 = tmp tmp = b1 b1 = b2 b2 = tmp End If If y0 <> y1 If y1 = y2 ey = y1 Else ey = y1 - 1 End If dx1 = x1 - x0 dy1 = y1 - y0 df1 = dx1 / dy1 dm1 = Abs(dx1 Mod dy1) dx2 = x2 - x0 dy2 = y2 - y0 df2 = dx2 / dy2 dm2 = Abs(dx2 Mod dy2) drg1 = r1 - r0 dfrg1 = drg1 / dy1 dmrg1 = Abs(drg1 Mod dy1) dgg1 = g1 - g0 dfgg1 = dgg1 / dy1 dmgg1 = Abs(dgg1 Mod dy1) dbg1 = b1 - b0 dfbg1 = dbg1 / dy1 dmbg1 = Abs(dbg1 Mod dy1) drg2 = r2 - r0 dfrg2 = drg2 / dy2 dmrg2 = Abs(drg2 Mod dy2) dgg2 = g2 - g0 dfgg2 = dgg2 / dy2 dmgg2 = Abs(dgg2 Mod dy2) dbg2 = b2 - b0 dfbg2 = dbg2 / dy2 dmbg2 = Abs(dbg2 Mod dy2) If x0 > x2 xs2 = -1 Else xs2 = 1 End If If x0 > x1 xs1 = -1 Else xs1 = 1 End If If r0 > r1 rsg1 = -1 Else rsg1 = 1 End If If g0 > g1 gsg1 = -1 Else gsg1 = 1 End If If b0 > b1 bsg1 = -1 Else bsg1 = 1 End If If r0 > r2 rsg2 = -1 Else rsg2 = 1 End If If g0 > g2 gsg2 = -1 Else gsg2 = 1 End If If b0 > b2 bsg2 = -1 Else bsg2 = 1 End If xp1 = x0 mc1 = dm1 xp2 = x0 mc2 = dm2 rg1 = r0 mcrg1 = dmrg1 gg1 = g0 mcgg1 = dmgg1 bg1 = b0 mcbg1 = dmbg1 rg2 = r0 mcrg2 = dmrg2 gg2 = g0 mcgg2 = dmgg2 bg2 = b0 mcbg2 = dmbg2 For yp = y0 To ey xc1 = xp1 xc2 = xp2 rcg1 = rg1 gcg1 = gg1 bcg1 = bg1 rcg2 = rg2 gcg2 = gg2 bcg2 = bg2 If xc1 <> xc2 If yp >= winTop If yp <= winBottom If xc1 > xc2 tmp = xc1 xc1 = xc2 xc2 = tmp tmp = rcg1 rcg1 = rcg2 rcg2 = tmp tmp = gcg1 gcg1 = gcg2 gcg2 = tmp tmp = bcg1 bcg1 = bcg2 bcg2 = tmp End If If xc1 <= winRight If xc2 >= winLeft d = xc2 - xc1 If xc1 < winLeft xc1 = winLeft If xc2 > winRight xc2 = winRight If rcg1 > rcg2 rs = -1 Else rs = 1 End If If gcg1 > gcg2 gs = -1 Else gs = 1 End If If bcg1 > bcg2 bs = -1 Else bs = 1 End If dr = rcg2 - rcg1 dfr = dr / d dmr = Abs(dr Mod d) dg = gcg2 - gcg1 dfg = dg / d dmg = Abs(dg Mod d) db = bcg2 - bcg1 dfb = db / d dmb = Abs(db Mod d) r = rcg1 mcr = dmr g = gcg1 mcg = dmg b = bcg1 mcb = dmb For xp = xc1 To xc2 WritePixelFast xp, yp, (r Shl 16) Or (g Shl 8) Or b, buffer r = r + dfr g = g + dfg b = b + dfb mcr = mcr + dmr If mcr >= d mcr = mcr - d r = r + rs End If mcg = mcg + dmg If mcg >= d mcg = mcg - d g = g + gs End If mcb = mcb + dmb If mcb >= d mcb = mcb - d b = b + bs End If Next End If End If End If End If End If xp1 = xp1 + df1 xp2 = xp2 + df2 rg1 = rg1 + dfrg1 gg1 = gg1 + dfgg1 bg1 = bg1 + dfbg1 rg2 = rg2 + dfrg2 gg2 = gg2 + dfgg2 bg2 = bg2 + dfbg2 mc1 = mc1 + dm1 mc2 = mc2 + dm2 mcrg1 = mcrg1 + dmrg1 mcgg1 = mcgg1 + dmgg1 mcbg1 = mcbg1 + dmbg1 mcrg2 = mcrg2 + dmrg2 mcgg2 = mcgg2 + dmgg2 mcbg2 = mcbg2 + dmbg2 If mc1 >= dy1 mc1 = mc1 - dy1 xp1 = xp1 + xs1 End If If mc2 >= dy2 mc2 = mc2 - dy2 xp2 = xp2 + xs2 End If If mcrg1 >= dy1 mcrg1 = mcrg1 - dy1 rg1 = rg1 + rsg1 End If If mcgg1 >= dy1 mcgg1 = mcgg1 - dy1 gg1 = gg1 + gsg1 End If If mcbg1 >= dy1 mcbg1 = mcbg1 - dy1 bg1 = bg1 + bsg1 End If If mcrg2 >= dy2 mcrg2 = mcrg2 - dy2 rg2 = rg2 + rsg2 End If If mcgg2 >= dy2 mcgg2 = mcgg2 - dy2 gg2 = gg2 + gsg2 End If If mcbg2 >= dy2 mcbg2 = mcbg2 - dy2 bg2 = bg2 + bsg2 End If Next Else If y1 = y2 Return dx2 = x2 - x0 dy2 = y2 - y0 df2 = dx2 / dy2 dm2 = Abs(dx2 Mod dy2) drg2 = r2 - r0 dfrg2 = drg2 / dy2 dmrg2 = Abs(drg2 Mod dy2) dgg2 = g2 - g0 dfgg2 = dgg2 / dy2 dmgg2 = Abs(dgg2 Mod dy2) dbg2 = b2 - b0 dfbg2 = dbg2 / dy2 dmbg2 = Abs(dbg2 Mod dy2) If x0 > x2 xs2 = -1 Else xs2 = 1 End If If r0 > r2 rsg2 = -1 Else rsg2 = 1 End If If g0 > g2 gsg2 = -1 Else gsg2 = 1 End If If b0 > b2 bsg2 = -1 Else bsg2 = 1 End If xp2 = x0 mc2 = dm2 rg2 = r0 mcrg2 = dmrg2 gg2 = g0 mcgg2 = dmgg2 bg2 = b0 mcbg2 = dmbg2 End If If y1 <> y2 dx1 = x2 - x1 dy1 = y2 - y1 df1 = dx1 / dy1 dm1 = Abs(dx1 Mod dy1) drg1 = r2 - r1 dfrg1 = drg1 / dy1 dmrg1 = Abs(drg1 Mod dy1) dgg1 = g2 - g1 dfgg1 = dgg1 / dy1 dmgg1 = Abs(dgg1 Mod dy1) dbg1 = b2 - b1 dfbg1 = dbg1 / dy1 dmbg1 = Abs(dbg1 Mod dy1) If x1 > x2 xs1 = -1 Else xs1 = 1 End If If r1 > r2 rsg1 = -1 Else rsg1 = 1 End If If g1 > g2 gsg1 = -1 Else gsg1 = 1 End If If b1 > b2 bsg1 = -1 Else bsg1 = 1 End If xp1 = x1 mc1 = dm1 rg1 = r1 mcrg1 = dmrg1 gg1 = g1 mcgg1 = dmgg1 bg1 = b1 mcbg1 = dmbg1 If y2 > winBottom y2 = winBottom For yp = y1 To y2 xc1 = xp1 xc2 = xp2 rcg1 = rg1 gcg1 = gg1 bcg1 = bg1 rcg2 = rg2 gcg2 = gg2 bcg2 = bg2 If xc1 <> xc2 If yp >= winTop If yp <= winBottom If xc1 > xc2 tmp = xc1 xc1 = xc2 xc2 = tmp tmp = rcg1 rcg1 = rcg2 rcg2 = tmp tmp = gcg1 gcg1 = gcg2 gcg2 = tmp tmp = bcg1 bcg1 = bcg2 bcg2 = tmp End If If xc1 <= winRight If xc2 >= winLeft d = xc2 - xc1 If xc1 < winLeft xc1 = winLeft If xc2 > winRight xc2 = winRight If rcg1 > rcg2 rs = -1 Else rs = 1 End If If gcg1 > gcg2 gs = -1 Else gs = 1 End If If bcg1 > bcg2 bs = -1 Else bs = 1 End If dr = rcg2 - rcg1 dfr = dr / d dmr = Abs(dr Mod d) dg = gcg2 - gcg1 dfg = dg / d dmg = Abs(dg Mod d) db = bcg2 - bcg1 dfb = db / d dmb = Abs(db Mod d) r = rcg1 mcr = dmr g = gcg1 mcg = dmg b = bcg1 mcb = dmb For xp = xc1 To xc2 WritePixelFast xp, yp, (r Shl 16) Or (g Shl 8) Or b, buffer r = r + dfr g = g + dfg b = b + dfb mcr = mcr + dmr If mcr >= d mcr = mcr - d r = r + rs End If mcg = mcg + dmg If mcg >= d mcg = mcg - d g = g + gs End If mcb = mcb + dmb If mcb >= d mcb = mcb - d b = b + bs End If Next End If End If End If End If End If xp1 = xp1 + df1 xp2 = xp2 + df2 rg1 = rg1 + dfrg1 gg1 = gg1 + dfgg1 bg1 = bg1 + dfbg1 rg2 = rg2 + dfrg2 gg2 = gg2 + dfgg2 bg2 = bg2 + dfbg2 mc1 = mc1 + dm1 mc2 = mc2 + dm2 mcrg1 = mcrg1 + dmrg1 mcgg1 = mcgg1 + dmgg1 mcbg1 = mcbg1 + dmbg1 mcrg2 = mcrg2 + dmrg2 mcgg2 = mcgg2 + dmgg2 mcbg2 = mcbg2 + dmbg2 If mc1 >= dy1 mc1 = mc1 - dy1 xp1 = xp1 + xs1 End If If mc2 >= dy2 mc2 = mc2 - dy2 xp2 = xp2 + xs2 End If If mcrg1 >= dy1 mcrg1 = mcrg1 - dy1 rg1 = rg1 + rsg1 End If If mcgg1 >= dy1 mcgg1 = mcgg1 - dy1 gg1 = gg1 + gsg1 End If If mcbg1 >= dy1 mcbg1 = mcbg1 - dy1 bg1 = bg1 + bsg1 End If If mcrg2 >= dy2 mcrg2 = mcrg2 - dy2 rg2 = rg2 + rsg2 End If If mcgg2 >= dy2 mcgg2 = mcgg2 - dy2 gg2 = gg2 + gsg2 End If If mcbg2 >= dy2 mcbg2 = mcbg2 - dy2 bg2 = bg2 + bsg2 End If Next End If End Function |
||
BlitzBasic 1.85 - BlitzPlus 1.37 - VC++ 6 - Delphi 7 - Haskell - FASM |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow wirklich sau schnell!
BlitzBasic: [AUSKLAPPEN]
Mit diesem Code kann man noch prüfen, ob das Triangle gerendert werden soll, oder nicht. Also wenn culling() False zurück gibt, dann kann das Triangle egrendert werden, andernfalls nicht. Ist BakcFaceCulling, also ein Triangle wird gecullt, wenn die Vertices nicht im Uhrzeigersinn sind. mfg olli |
||
vertex.dreamfall.at | GitHub |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Heiliger Strohsack , ist das schnell!
Selbst auf meiner 200Mhz.Kiste läuft das fast perfekt flüssig! |
||
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.....
ist ja komisch. Ich habe einen 2Ghz Rechner und habe etwa 2 FPS. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tft: debug-modus ![]() ich hab ca 65fps... |
||
tasky |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist wahrscheinlich sowieso jedem klar, aber:
Je kleiner r, desto mehr fps!!! |
||
BlitzBasic 1.85 - BlitzPlus 1.37 - VC++ 6 - Delphi 7 - Haskell - FASM |
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.....
r=300,kein debug,=16 FPS ???????? |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
Blatolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe ohne debug 67 fps und mit 4 fps.
Mit der Standarteinstellung r=500 |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das ding ruckelt extrem durch die landschaft
Sys: P4-M 1,7ghz, GF4 440go, 1024mb RAM$ vielleicht ne optimierung im code die sich mit P4 net verträgt oder so |
||
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich würds eher auf die grafikkarte schieben, da sowohl tft, als auch du, die allerletzten teile habt ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In anbetracht der Tatsache das Leute mit P1/P2 bessere Resultate haben, glaub ich da nicht wirklich dran ![]() |
||
![]() |
Blatolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenns an der Grafikkarte liegt dann verstehe ich meine hohen Raten nicht.
Habe ne geforce 2 mx 32 mb(shared), AMD Athlon 1700+ und 256 mb ddr ram Ist meine Graka etwa gar nicht so schlecht wie bisher angenommen ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Doch deine Karte is noch mieser, ne modifizierte GF1
Ich vermute es liegt an den P4-M prozessoren. Da wurde mit sicherheit irgendwo an den zusätzlichen Prozessoroptimierungen gespart und das wirkt sich verheerend aus so wie es aussieht. Weil Grafikkarte und RAM fallen aus und die gemeinsamkeit von mir und tft is die Tatsache das wir auf Laptops arbeiten. ( Dell Inspiron 8200 in meinem Fall ) |
||
tasky |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm, die Optimierung bezieht sich im wesentlichen darauf, dass (in den Schleifen) die normalerweise notwendigen Multiplikationen / Divisionen auf Additionen / Subtraktionen reduziert werden.
Hier ein Code zum Vergleich der Geschwindigkeiten: BlitzBasic: [AUSKLAPPEN] Print "..." Add / Sub: 458ms Mul / Div: 2920ms System: Fujitsu Siemens Laptop mit Athlon 2400+, 512MB DDR, ATI Radeon IGP (eigentlich schlechte Grafikkarte) Schreibt bitte mal eure Ergebnisse rein mit entsprechendem System. |
||
BlitzBasic 1.85 - BlitzPlus 1.37 - VC++ 6 - Delphi 7 - Haskell - FASM |
HOT-BITGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hi !
@tasky: Da kann doch was nicht stimmen ! Wenn ich für die i-Schleife nur 10 nehme, habe ich schon 14,6 Sekunden pro Durchlauf. Der zweite Wert liegt um 2 Zehntel darüber. Wie kann es sein, daß ein 2400er schneller rennt als ein 2600er ? Irgendwas passt da nicht ! Und zu dem Programm oben kann ich sagen, 94 FPS bei r=500. Mit Debug habe ich aber nur 1 FPS. Pfffft, das bremst ! Toni |
||
tasky |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Seltsam, ich hab das ganze jetzt mal auf nem Athlon 1GHz ausprobiert und bekomme folgende Wert:
Add / Sub: 812ms Mul / Div: 5163ms Kann aber trotzdem keinen Fehler im Code des Gechwindigkeitstest finden. Wenn die Werte stimmen, ist das wirklich interressant, wie sich die verschiedenen CPUs verhalten. Blitz benutzt wahrscheinlich erweiterte Prozessorbefehle von MMX, SSE, usw. Das könnte auf jeden Fall eine Rolle spielen. Eine grosse Rolle könnte auch der Cache spielen, den dann wäre (unter Umständen) der Datenzugriff (z.B. auf Variablen) schneller. |
||
BlitzBasic 1.85 - BlitzPlus 1.37 - VC++ 6 - Delphi 7 - Haskell - FASM |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hab da
388ms 3015ms 2000+ Ahtlon XP 512 DDR-333 Via KT333 + VT8233A FSB 200/266 mit Win98 und DirectX 9 |
||
[BB2D | BB3D | BB+]
|
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit Debug 2 FPS, ohne so um die 4.
P4 2,26 512 DDR 266 PX Dx 9.0b Schon seltsam |
||
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du scherzkeks! wie sollen reine mathematische berechnungen zu vergleichen sein mit writepixelfast - auf welcher die shaded triangle funktionen basieren!
denkt doch bitte mal nach, bevor ihr euren geistigen durchfall hier fallen lasst! danke. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Er hat schon reicht
weil writepixelfast kanns net sein, das wäre bandbreitenbedingt. aber da wir ja selbst von PCI Systemen ausgetoppt werden, wurde da irgendwas am mobile prozessor modifiziert was gewaltig was gezogen hat Sei es SSE rausgenommen oder MMX oder einfach sonstwas ... Zeiten der bereichnungen oben Add: 707ms Multi: 5807ms P4-M 1.7ghz, 1024mb RAM |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group