Salta al contenuto
  • Categorie
  • Recenti
  • Tag
  • Popolare
  • Utenti
  • Gruppi
Collassa
Logo del marchio
  1. Home
  2. Hardware
  3. CPU & Overclock
  4. Prime Cores V1.0 Freeware

Prime Cores V1.0 Freeware

Pianificato Fissato Bloccato Spostato CPU & Overclock
438 Post 0 Autori 40.9k Visualizzazioni
  • Da Vecchi a Nuovi
  • Da Nuovi a Vecchi
  • Più Voti
Rispondi
  • Risposta alla discussione
Effettua l'accesso per rispondere
Questa discussione è stata eliminata. Solo gli utenti con diritti di gestione possono vederla.
  • X Non in linea
    X Non in linea
    Xstreme
    scritto su ultima modifica di
    #136

    Totocellux ha scritto:

    ottimo lavoro per ciò che riguarda l'interfaccia O0

    anche se ricca di riquadri, è decisamente gradevole: il wall-paper del portale come sfondo, mi piace parecchio :D

    Devo dire, però, che il drawing dei riquadri risulta finanche troppo pesante su macchine non recentissime.

    Sarebbe forse utile evidenziare con un colore più in risalto il riquadro in alto della selezione della dimensione del test (quello con il radio-button che si andrà ad attivare), perchè a primo acchitto non risulta ben rilevabile.

    di certo sarebbe più utile salvare i dati dei test nel formato più universale:

    nomeutente_aaaa-mm-gg_hh-mm-ss

    questa modalità garantirebbe da subito la corretta individuazione cronologica dei vari test, soprattutto per te qualora li acquisissi a un fine statistico

    Su piattaforma P5WDG2 WS Pro e Q6600 lo scanning del sistema si blocca inesorabilmente in fase di acquisizione della configurazione.

    su P5ND2 Sli e Pentium D805, va bene ma ho riscontrato anch'io quel problemino di utilizzazione del 2° core alla fine del test.

    In seguito, altre impressioni

    :)

    ciao

    wow :clapclap:

    ho scritto sul blocco appunti tutto quanto,

    ti chiedo una cosa,

    per cortesia, metti la cartella del programma

    dentro una key usb, (è "portable"),

    inserisci la key usb nel pc

    P5WDG2 WS Pro e Q6600,

     

    eseguendolo da key si blocca ancora ?

     

    grazie

    1 Risposta Ultima Risposta
    0
    • X Non in linea
      X Non in linea
      Xstreme
      scritto su ultima modifica di
      #137

      apix_1024 ha scritto:

      per il load credo basti fare in modo che il prgramma di suo si setti a priorità alta! diremo a bonis62.

      per lo stress test fai i 100milioni di numeri primi e poi dimmi se non basta :asd:

      in realta non sono 100 milioni di numeri primi e basta,

      calcolando che una routine secondaria lancia (in multithread)

      il numero primo scoperto alla funzione int8(sqr(Atan2))

      che estrae un numero intero a 8 bit basato sulla radice quadrata

      dei tangenti atan2; i due tangenti atan2 usano come vettori:

      1°) il numero primo scoperto come coordinata X

      2°) il fattoriale "mersennizato" calcolato partendo dal

      1° numero primo scoperto fino a quello in lavorazione

      come coordinata Y, il numero intero a 8 bit risultante

      (convertito da numero a doppia precisione in virgola

      mobile, in intero arrotondato)

      è il riferimento per la verifica del risultato, quindi nello

      stesso momento da una matrice ottagonale precacolata,

      viene estratto un numero intero a 8 bit e viene confrontato

      con quel preciso risultato, se coincide la cpu esegue i calcoli in modo

      corretto, ah, dimenticavo, la matrice ottagonale non è composta

      da numeri interi, ma bensi, da stringhe di testo contenenti il numero

      intero a 8 bit che viene convertito anchesso in real time da stringa

      di testo in numero intero a 8 bit di eguale peso,

      (utilizzo una stringa di testo per contenere il numero intero a 8 bit, per far

      si che anche quando la cpu funziona male non può alterare il valore

      della verifica da una stringa di testo, non essendo numericamente valida)

      tieni presente

      che se lavori con 8 core, questa procedura la devi moltiplicare

      per 8 :asd:, tornando a noi, non sono solo numeri primi.

      1 Risposta Ultima Risposta
      0
      • A Non in linea
        A Non in linea
        apix_1024
        scritto su ultima modifica di
        #138

        bonis62 ha scritto:

        in realta non sono 100 milioni di numeri primi e basta,

        calcolando che una routine secondaria lancia (in multithread)

        il numero primo scoperto alla funzione int8(sqr(Atan2))

        che estrae un numero intero a 8 bit basato sulla radice quadrata

        dei tangenti atan2; i due tangenti atan2 usano come vettori:

        1°) il numero primo scoperto come coordinata X

        2°) il fattoriale "mersennizato" calcolato partendo dal

        1° numero primo scoperto fino a quello in lavorazione

        come coordinata Y, il numero intero a 8 bit risultante

        (convertito da numero a doppia precisione in virgola

        mobile, in intero arrotondato)

        è il riferimento per la verifica del risultato, quindi nello

        stesso momento da una matrice ottagonale precacolata,

        viene estratto un numero intero a 8 bit e viene confrontato

        con quel preciso risultato, se coincide la cpu esegue i calcoli in modo

        corretto, ah, dimenticavo, la matrice ottagonale non è composta

        da numeri interi, ma bensi, da stringhe di testo contenenti il numero

        intero a 8 bit che viene convertito anchesso in real time da stringa

        di testo in numero intero a 8 bit di eguale peso,

        (utilizzo una stringa di testo per contenere il numero intero a 8 bit, per far

        si che anche quando la cpu funziona male non può alterare il valore

        della verifica da una stringa di testo, non essendo numericamente valida)

        tieni presente

        che se lavori con 8 core, questa procedura la devi moltiplicare

        per 8 :asd:, tornando a noi, non sono solo numeri primi.

        io che sono ingegnere meccanico se dovessi scrivere in formule quello che hai appena detto credo che un 15minuti buoni mi servirebbero! complimenti!! O0 domani magari lo butto in esecuzione così vediamo quanto ci mette il il mio pippa II X4 a fare sta robetta :asd::asd::asd:

        1 Risposta Ultima Risposta
        0
        • X Non in linea
          X Non in linea
          Xstreme
          scritto su ultima modifica di
          #139

          apix_1024 ha scritto:

          io che sono ingegnere meccanico se dovessi scrivere in formule quello che hai appena detto credo che un 15minuti buoni mi servirebbero! complimenti!! O0 domani magari lo butto in esecuzione così vediamo quanto ci mette il il mio pippa II X4 a fare sta robetta :asd::asd::asd:

          una volta che hai scritto in concetto umano le formule descritte,

          dovresti...dopo... tradurle ..alcune ottimizzate in C...è alcune

          ottimizzate in Assembler...tieni presente...che per far lavorare

          la CPU al 100 % devi fargli arrivare i calcoli in parallelismo puro

          altrimenti il load del 100 % te lo scordi, quindi un compilatore

          alla Visual basic & Company al massimo lo puoi utilizzare per

          scrivere l'interfaccia interfacciandolo ai moduli c e assembler,

          ti faccio presente che la routine che rallenta i calcoli sono

          le barre barre di avanzamento di windows vista e seven,

          che sono progettate da uno che secondo me il pc lo usa

          al massimo per fare i conti della spesa :fiufiu:, infatti se noti

          il refresh dell'interfaccia grafica l'ho minimizzato ai minimi

          termini, dovrei riscrivere l'interfaccia escludendo il s.o.,

          ma per adesso va bene cosi, a livello numerico un (+1) incremento

          della barra di avanzamento ti fa perdere ben 6 ms che per

          uno scroll di una barra, mi sembrano un pò eccessivi , non credi ?,

          per arrivare al "purismo" si dovrebbero fare i calcoli senza la

          parte grafica di mezzo, ma ... l'abito fà il monaco da queste parti :asd:

          se vuoi vedere un esempio pratico:

          http://www.xstreme.it/differenza.exe

          è una semplice elevazione di numeri interi ""superparallelamenteottimizzata""

          ( la puoi fare con la calcolatrice non scientifica )

          ps

          io sono (ero) un sound ingegner, non il solito, mi occupavo

          di progettare, configurare, finalizzare D.A.W. ;

          (sto parlado da 48 tracce in sù, per spiegarmi meglio)

          da lì è nata l'esigenza di avere delle pezze software

          per avere tempi di latenza molto bassi, quindi, con

          l'andare del tempo, mi sono perso nel mare infinito

          della programmazione a basso livello :) ed eccoci

          qui.... :ciao:

          1 Risposta Ultima Risposta
          0
          • A Non in linea
            A Non in linea
            apix_1024
            scritto su ultima modifica di
            #140

            caro ragazzo tu hai le palle cubiche! :clapclap:

            cmq ho provato il nuovo eseguibile....

            millesecondi impiegati con interfaccia grafica attiva : 926

            millesecondi impiegati con interfaccia grafica NON attiva : 731

            sticazziii :AAAAH::AAAAH:

            1 Risposta Ultima Risposta
            0
            • T Non in linea
              T Non in linea
              Totocellux
              scritto su ultima modifica di
              #141

              ti siamo tutti grati per il tempo che stai utilizzando insieme a noi, e personalmente ne seguo con estremo interesse lo sviluppo :)

              Se avessi altro tempo a disposizione parteciperei volentieri più attivamente, ma purtroppo non lo posso avere :muro:

              Ho notato che ora, lato riconoscimento hardware, utilizzi l'MSR Walker che CrystalMark ha sviluppato per il suo CrystalCpuId.

              Ben fatto, meglio evitare rogne ulteriori e dedicarti esclusivamente allo sviluppo dell'interfaccia e dell'algoritmo O0

              Ho visto anche che utilizzi Microsoft ASM v1.0

              Soprattutto in ambiente Vista e 7 per agganciarti meglio (con le giuste librerie) con la GUI del s.o. dovresti passare allo sviluppo tramite .NET.

              Questo ti permetterebbe senz'altro di interfacciarti più fluidamente e senza il verificarsi di ulteriori rallentamenti.

              Quindi se non vuoi riscrivere d'accapo tutto il lavoro in un futuro prossimo, ti consiglio quanto prima di passare quantomeno a C# (Sharp) quindi a Visual Studio 2005-SP1/2008 o addirittura al nuovo 2010.

              Un'ultima cosa: comprendo che sono solo righe di codice per un test, ma dovrei farti un piccolo appunto

              http://www.xstreme.it/differenza.exe

              2^3=4

              2^4=8

              2^5=16

              etc. etc.

              in partenza ti deve esser sfuggito un incremento sul fattore di potenza all'interno del primo ciclo nell'output di scrittura, e il risultato è tutto slittato indietro di un fattore ;)

              Continua con questo impegno, che riuscirai/riusciremo a tirar fuori belle cose :)

              1 Risposta Ultima Risposta
              0
              • A Non in linea
                A Non in linea
                apix_1024
                scritto su ultima modifica di
                #142

                bravo toto l'avevo notato anche io lo slittamento del risultato ;)

                cmq per fare i 100M numeri primi e la smatricizzazione il mio pippa II X4 dovrebbe lavorare 24/27 per ben 64giorni :asd::asd::asd:

                1 Risposta Ultima Risposta
                0
                • X Non in linea
                  X Non in linea
                  Xstreme
                  scritto su ultima modifica di
                  #143

                  Totocellux ha scritto:

                  ti siamo tutti grati per il tempo che stai utilizzando insieme a noi, e personalmente ne seguo con estremo interesse lo sviluppo :)

                  Se avessi altro tempo a disposizione parteciperei volentieri più attivamente, ma purtroppo non lo posso avere :muro:

                  Ho notato che ora, lato riconoscimento hardware, utilizzi l'MSR Walker che CrystalMark ha sviluppato per il suo CrystalCpuId.

                  Ben fatto, meglio evitare rogne ulteriori e dedicarti esclusivamente allo sviluppo dell'interfaccia e dell'algoritmo O0

                  Ho visto anche che utilizzi Microsoft ASM v1.0

                  Soprattutto in ambiente Vista e 7 per agganciarti meglio (con le giuste librerie) con la GUI del s.o. dovresti passare allo sviluppo tramite .NET.

                  Questo ti permetterebbe senz'altro di interfacciarti più fluidamente e senza il verificarsi di ulteriori rallentamenti.

                  Quindi se non vuoi riscrivere d'accapo tutto il lavoro in un futuro prossimo, ti consiglio quanto prima di passare quantomeno a C# (Sharp) quindi a Visual Studio 2005-SP1/2008 o addirittura al nuovo 2010.

                  Un'ultima cosa: comprendo che sono solo righe di codice per un test, ma dovrei farti un piccolo appunto

                  http://www.xstreme.it/differenza.exe

                  2^3=4

                  2^4=8

                  2^5=16

                  etc. etc.

                  in partenza ti deve esser sfuggito un incremento sul fattore di potenza all'interno del primo ciclo nell'output di scrittura, e il risultato è tutto slittato indietro di un fattore ;)

                  Continua con questo impegno, che riuscirai/riusciremo a tirar fuori belle cose :)

                  che debugger hai utilizzato ?

                  1 Risposta Ultima Risposta
                  0
                  • P Non in linea
                    P Non in linea
                    principino1984
                    scritto su ultima modifica di
                    #144

                    apix_1024 ha scritto:

                    bravo toto l'avevo notato anche io lo slittamento del risultato ;)

                    cmq per fare i 100M numeri primi e la smatricizzazione il mio pippa II X4 dovrebbe lavorare 24/27 per ben 64giorni :asd::asd::asd:

                    e non ti sembra un buon motivo per buttarlo al cesso? :asd:

                    bonis62 ha scritto:

                    che debugger hai utilizzato ?

                    il debugger utilizzato è la sua infinita saggezza :asd:!

                    1 Risposta Ultima Risposta
                    0
                    • X Non in linea
                      X Non in linea
                      Xstreme
                      scritto su ultima modifica di
                      #145

                      principino1984 ha scritto:

                      e non ti sembra un buon motivo per buttarlo al cesso? :asd:

                      il debugger utilizzato è la sua infinita saggezza :asd:!

                      no.....perchè.......

                      ci sono un pò di cose che non quadrano :knuppel2: , volevo verificare di persona.

                      1 Risposta Ultima Risposta
                      0
                      • T Non in linea
                        T Non in linea
                        Totocellux
                        scritto su ultima modifica di
                        #146

                        bonis62 ha scritto:

                        che debugger hai utilizzato ?

                        ad un primo approccio non ne utilizzo alcuno ...... semplicemente visualizzo il linkeditato (l'eseguibile) in raw, o in alcuni casi utilizzo un editor esadecimale e mi oriento lì dentro ;)

                        1 Risposta Ultima Risposta
                        0
                        • X Non in linea
                          X Non in linea
                          Xstreme
                          scritto su ultima modifica di
                          #147

                          Totocellux ha scritto:

                          ad un primo approccio non ne utilizzo alcuno ...... semplicemente visualizzo il linkeditato (l'eseguibile) in raw, o in alcuni casi utilizzo un editor esadecimale e mi oriento lì dentro ;)

                          ah ok

                          comunque non uso asm 1.0

                          uso Flat Assembler 1.68 per Windows e Linux

                          le chiamate alle api sono fatte piu o meno cosi:

                          Function GetWindowText(hWnd:,lpString:,nMaxCount :)

                          quindi puoi ben riconoscere sono regolari chiamate di servizio

                          di crystal, utilizzo una sola chiamta a una dll per il database

                          dei nomi delle schede madri, trovo l'esadecimale dalla libreria

                          volatile di windows (sappiamo entrambi quale è) e mi becco

                          con quel hex il return della nome della mobo

                          che ben presto toglierò perchè alle volte blocca il programma

                          anzi se ti intendi di programmazione e mi butti giù 4 righe

                          per il sysinfo non sarebbe male :)

                          in effetti è slittato di uno, in avanti perche è

                          dalla parte della variabile di intestazione,

                          per dirla tutta :)

                          se ti piace ce Pe explorer che ha un viewer hex fenomenale.

                          se vuoi fare domande , sto qui :)

                          1 Risposta Ultima Risposta
                          0
                          • T Non in linea
                            T Non in linea
                            Totocellux
                            scritto su ultima modifica di
                            #148

                            bonis62 ha scritto:

                            che debugger hai utilizzato ?

                            ad un primo approccio non ne utilizzo alcuno ...... semplicemente visualizzo il linkeditato (l'eseguibile) in raw, o in alcuni casi utilizzo un editor esadecimale e mi oriento lì dentro ;)

                            1 Risposta Ultima Risposta
                            0
                            • A Non in linea
                              A Non in linea
                              apix_1024
                              scritto su ultima modifica di
                              #149

                              principino1984 ha scritto:

                              e non ti sembra un buon motivo per buttarlo al cesso? :asd:

                              il debugger utilizzato è la sua infinita saggezza :asd:!

                              giovine il mio amd superpippa II X4 per il resto va benone.. se a calcolare numeri primi è più lento del mio nokia 5800 non mi ci sbatto più di tanto :asd::asd::asd:

                              1 Risposta Ultima Risposta
                              0
                              • O Non in linea
                                O Non in linea
                                One1ros
                                scritto su ultima modifica di
                                #150

                                da me non funziona bene l'abort/restart: quando lo premo che riapre la schermata che ha ancora tutte le voci che devono essere selezionate per quanto riguarda quelle dei core anche se non vengono visualizzate le checkbox evidenziate mi tiene sempre l'ultima modifica fatta. In piu' se si vuole cambiare idea e nn fare piu' l'esclusione dei thread non si puo fare e si deve resettare (che, ripeto, da me non funziona).

                                Questa la config:

                                CPU :

                                Intel® Core?2 CPU 6400 @ 2.13GHz

                                ------------------------------------------------------------------

                                Cores :

                                2

                                ---------------------------------------------

                                Operating System :

                                Windows XP Professional SP3 [ 5.1 Build 2600 ]

                                Mi ha dato un punteggio di 9 sul 1K

                                cmq il carico cpu è sempre tra 97 e 99% penso possa essere soddisfacente come cosa ;)Complimenti per questo egregio lavoro. :n2mu:

                                1 Risposta Ultima Risposta
                                0
                                • X Non in linea
                                  X Non in linea
                                  Xstreme
                                  scritto su ultima modifica di
                                  #151

                                  Totocellux ha scritto:

                                  ad un primo approccio non ne utilizzo alcuno ...... semplicemente visualizzo il linkeditato (l'eseguibile) in raw, o in alcuni casi utilizzo un editor esadecimale e mi oriento lì dentro ;)

                                  http://www.xstreme.it/ttcl.zip

                                  ho sempre voluto sapere con che directx e scritta sta

                                  cosa, magari tu ci riesci O0

                                  1 Risposta Ultima Risposta
                                  0
                                  • X Non in linea
                                    X Non in linea
                                    Xstreme
                                    scritto su ultima modifica di
                                    #152

                                    One1ros ha scritto:

                                    da me non funziona bene l'abort/restart: quando lo premo che riapre la schermata che ha ancora tutte le voci che devono essere selezionate per quanto riguarda quelle dei core anche se non vengono visualizzate le checkbox evidenziate mi tiene sempre l'ultima modifica fatta. In piu' se si vuole cambiare idea e nn fare piu' l'esclusione dei thread non si puo fare e si deve resettare (che, ripeto, da me non funziona).

                                    Questa la config:

                                    CPU :

                                    Intel® Core?2 CPU 6400 @ 2.13GHz

                                    ------------------------------------------------------------------

                                    Cores :

                                    2

                                    ---------------------------------------------

                                    Operating System :

                                    Windows XP Professional SP3 [ 5.1 Build 2600 ]

                                    Mi ha dato un punteggio di 9 sul 1K

                                    cmq il carico cpu è sempre tra 97 e 99% penso possa essere soddisfacente come cosa ;)Complimenti per questo egregio lavoro. :n2mu:

                                    hai ragione, in effetti per fare prima ho fatto riavviare alla

                                    brutta l'applicazione, ma sto scrivendo la procedura

                                    corretta, abbi pazienza, il cambio dei thread è incluso

                                    nel reset di tutte le viariabili, quindi coincide con il fatto stesso :D

                                    grazie per i complimenti, e ne approfitto per ringraziare tutti dei complimenti, troppo buoni :clapclap:

                                    con le beta i punteggi danno un po' a desiderare, in quanto cambiando le routine, cambiano i risultati

                                    che per ora sono ancora fittizi, dalla prossima release , sara tutto un pò piu stabile,

                                    del 97 e il 99 per cento, forse è già risolto, cioè , mi ero dimenticato di chiudere

                                    un processo, che occupava cicli.

                                    1 Risposta Ultima Risposta
                                    0
                                    • X Non in linea
                                      X Non in linea
                                      Xstreme
                                      scritto su ultima modifica di
                                      #153

                                      apix_1024 ha scritto:

                                      giovine il mio amd superpippa II X4 per il resto va benone.. se a calcolare numeri primi è più lento del mio nokia 5800 non mi ci sbatto più di tanto :asd::asd::asd:

                                      ma ce anche la superpippa I ? :2funny:

                                      1 Risposta Ultima Risposta
                                      0
                                      • T Non in linea
                                        T Non in linea
                                        Totocellux
                                        scritto su ultima modifica di
                                        #154

                                        :asd:

                                        bonis62 ha scritto:

                                        http://www.xstreme.it/ttcl.zip

                                        ho sempre voluto sapere con che directx e scritta sta

                                        cosa, magari tu ci riesci O0

                                        ...... sono appena tornato a casa :asd:

                                        è scritta in un linguaggio simile al VIsual Basic, e utilizza OpenGL:

                                        BlitzMAX

                                        :)

                                        1 Risposta Ultima Risposta
                                        0
                                        • X Non in linea
                                          X Non in linea
                                          Xstreme
                                          scritto su ultima modifica di
                                          #155

                                          Totocellux ha scritto:

                                          :asd:

                                          ...... sono appena tornato a casa :asd:

                                          è scritta in un linguaggio simile al VIsual Basic, e utilizza OpenGL:

                                          BlitzMAX

                                          :)

                                          clip1.jpg

                                          quindi questo qui sotto non centra nulla con quel codice essendo c++, vero ?

                                          #include "geom.h"

                                          #include

                                          #include

                                          using namespace std;

                                          extern "C"{

                                          void C_UpdateNormals(int,int,short *,float *,float *);

                                          int C_IntersectSegmentTriangle( float px, float py, float pz,

                                          float qx, float qy, float qz,

                                          float ax, float ay, float az,

                                          float bx, float by, float bz,

                                          float cx, float cy, float cz,

                                          float &u, float &v, float &w, float &t);

                                          }

                                          int TriangleVertex(int,int,short*);

                                          void C_UpdateNormals(int no_tris,int no_verts,short *tris,float *vert_coords,float *vert_norm){

                                          int t;

                                          map norm_map;

                                          for( t=0;t

                                          int tri_no=(t+1)*3;

                                          int v0=tris[tri_no-3];

                                          int v1=tris[tri_no-2];

                                          int v2=tris[tri_no-1];

                                          float ax=vert_coords[v1*3+0]-vert_coords[v0*3+0];

                                          float ay=vert_coords[v1*3+1]-vert_coords[v0*3+1];

                                          float az=vert_coords[v1*3+2]-vert_coords[v0*3+2];

                                          float bx=vert_coords[v2*3+0]-vert_coords[v1*3+0];

                                          float by=vert_coords[v2*3+1]-vert_coords[v1*3+1];

                                          float bz=vert_coords[v2*3+2]-vert_coords[v1*3+2];

                                          float nx=(ay*bz)-(az*by); // surf.TriangleNX#(t)

                                          float ny=(az*bx)-(ax*bz); // surf.TriangleNX#(t)

                                          float nz=(ax*by)-(ay*bx); // surf.TriangleNX#(t)

                                          Vector n(nx,ny,nz);

                                          n.normalize();

                                          int c;

                                          for( c=0;c

                                          int v=TriangleVertex(t,c,tris);

                                          float vx=vert_coords[v*3]; // surf.VertexX(v)

                                          float vy=vert_coords[(v*3)+1]; // surf.VertexY(v)

                                          float vz=vert_coords[(v*3)+2]; // surf.VertexZ(v)

                                          Vector vex;

                                          vex.x=vx;

                                          vex.y=vy;

                                          vex.z=vz;

                                          norm_map[vex]+=n;

                                          }

                                          }

                                          int v;

                                          for( v=0;v

                                          float vx=vert_coords[v*3]; // surf.VertexX(v)

                                          float vy=vert_coords[(v*3)+1]; // surf.VertexY(v)

                                          float vz=vert_coords[(v*3)+2]; // surf.VertexZ(v)

                                          Vector vert(vx,vy,vz);

                                          //vert.x=vx;

                                          //vert.y=vy;

                                          //vert.z=vz;

                                          Vector norm=norm_map[vert];

                                          //If !norm Continue;

                                          norm.normalize();

                                          vert_norm[v*3+0]=norm.x; // surf.VertexNormal(v,norm.x,norm.y,norm.z)

                                          vert_norm[v*3+1]=norm.y; // surf.VertexNormal(v,norm.x,norm.y,norm.z)

                                          vert_norm[v*3+2]=norm.z; // surf.VertexNormal(v,norm.x,norm.y,norm.z)

                                          }

                                          }

                                          int TriangleVertex(int tri_no,int corner,short* tris){

                                          int vid[3];

                                          tri_no=(tri_no+1)*3;

                                          vid[0]=tris[tri_no-1];

                                          vid[1]=tris[tri_no-2];

                                          vid[2]=tris[tri_no-3];

                                          return vid[corner];

                                          }

                                          // Given segment pq and triangle abc, returns whether segment intersects

                                          // triangle and if so, also returns the barycentric coordinates (u,v,w)

                                          // of the intersection point

                                          int C_IntersectSegmentTriangle( float px, float py, float pz,

                                          float qx, float qy, float qz,

                                          float ax, float ay, float az,

                                          float bx, float by, float bz,

                                          float cx, float cy, float cz,

                                          float &u, float &v, float &w, float &t)

                                          {

                                          Vector p,q,a,b,c;

                                          p.x=px;p.y=py;p.z=pz;q.x=qx,q.y=qy;q.z=qz;a.x=ax;a.y=ay;a.z=az;b.x=bx;b.y=by;b.z=bz;c.x=cx;c.y=cy;c.z=cz;

                                          Vector ab = b - a;

                                          Vector ac = c - a;

                                          Vector qp = p - q;

                                          // Compute triangle normal. Can be precalculated or cached if

                                          // intersecting multiple segments against the same triangle

                                          Vector n = ab.cross(ac);

                                          // Compute denominator d. If d

                                          // away from triangle, so exit early

                                          float d = qp.dot(n);

                                          if (d

                                          // Compute intersection t value of pq with plane of triangle. A ray

                                          // intersects iff 0

                                          // dividing by d until intersection has been found to pierce triangle

                                          Vector ap = p - a;

                                          t = ap.dot(n);

                                          if (t

                                          if (t > d) return 0; // For segment; exclude this code line for a ray test

                                          // Compute barycentric coordinate components and test if within bounds

                                          Vector e = qp.cross(ap);

                                          v = ac.dot(e);

                                          if (v d) return 0;

                                          w = -(ab.dot(e));

                                          if (w d) return 0;

                                          // Segment/ray intersects triangle. Perform delayed division and

                                          // compute the last barycentric coordinate component

                                          float ood = 1.0f / d;

                                          t *= ood;

                                          v *= ood;

                                          w *= ood;

                                          u = 1.0f - v - w;

                                          return 1;

                                          }

                                          1 Risposta Ultima Risposta
                                          0

                                          Ciao! Sembra che tu sia interessato a questa conversazione, ma non hai ancora un account.

                                          Stanco di dover scorrere gli stessi post a ogni visita? Quando registri un account, tornerai sempre esattamente dove eri rimasto e potrai scegliere di essere avvisato delle nuove risposte (tramite email o notifica push). Potrai anche salvare segnalibri e votare i post per mostrare il tuo apprezzamento agli altri membri della comunità.

                                          Con il tuo contributo, questo post potrebbe essere ancora migliore 💗

                                          Registrati Accedi
                                          Rispondi
                                          • Risposta alla discussione
                                          Effettua l'accesso per rispondere
                                          • Da Vecchi a Nuovi
                                          • Da Nuovi a Vecchi
                                          • Più Voti


                                          • Accedi

                                          • Non hai un account? Registrati

                                          • Accedi o registrati per effettuare la ricerca.
                                          Powered by NodeBB Contributors
                                          • Primo post
                                            Ultimo post
                                          0
                                          • Categorie
                                          • Recenti
                                          • Tag
                                          • Popolare
                                          • Utenti
                                          • Gruppi