Ulteriori attività

2496 Messaggi ospiti

  1. Bella daje se riesci ad utilizzare quelle tecniche poi dimmi come ti trovi, se sono fighe come sembrano o se poi nella pratica c'è qualche intoppo.

    E' bello sapere che c'è qualcuno che punta alle novità in un campo spesso ancorata a linguaggi e standard più che obsoleti...
  2. La cosa stupenda è che è tutto compile-time, controlli ed operazioni.
  3. Quello che ho pensato anch'io quando l'ho letto su un articolo di Stroustrup


  4. Spoiler:
    codice:
    // C++11
    
    # include <iostream>
    
    template <int M, int L, int T>  // mass, length and time
    class Quantity
    {
        double value;
    
    public:
    
        constexpr explicit Quantity(double value) : value(value) { }
        
        double getValue() const { return value; }
    };
    
    template <int M1, int L1, int T1, int M2, int L2, int T2>
    Quantity<M1-M2, L1-L2, T1-T2> operator/(
        const Quantity<M1, L1, T1>& lhs, const Quantity<M2, L2, T2>& rhs)
    {
        return Quantity<M1-M2, L1-L2, T1-T2>(lhs.getValue() / rhs.getValue());
    }
    
    template <int M, int L, int T>
    std::ostream& operator<< (std::ostream& stream, const Quantity<M, L, T>& quantity)
    {
        return stream << quantity.getValue();
    }
    
    typedef Quantity<1,0,0> Mass;
    typedef Quantity<0,1,0> Length;
    typedef Quantity<0,0,1> Time;
    typedef Quantity<0,0,2> Time2;
    typedef Quantity<0,1,-1> Speed;
    typedef Quantity<0,1,-2> Acceleration;
    
    constexpr Mass operator"" _kg(long double x)
    {
        return Mass(static_cast<double>(x));
    }
    
    constexpr Length operator"" _m(long double x)
    {
        return Length(static_cast<double>(x));
    }
    
    constexpr Time operator"" _s(long double x)
    {
        return Time(static_cast<double>(x));
    }
    
    constexpr Time2 operator"" _s2(long double x)
    {
        return Time2(static_cast<double>(x));
    }
    
    int main(void)
    {
        // Mass m = 10.0;  // error, no unit
        // Mass m2 = 10.0_m;  // error, wrong unit
        Mass mass = 10.0_kg;
        Length length = 5.0_m;
        Time time = 12.0_s;
        // Speed s = length / mass;  // error, wrong units
        Speed speed = length / time;  //  <--- !!!!
        
        Speed sp1 = 100.0_m / 9.8_s;
        // Speed sp2 = 100.0_m / 9.8_s2;  // error (m/s2 is acceleration)
        // Speed sp3 = 100.0 / 9.8_s;  // error (speed is m/s but 100 has no unit)
        Acceleration acceleration = sp1 / 0.5_s;
        
        std::cout << "mass is " << mass
            << "\nspeed is " << speed
            << "\nacceleration is " << acceleration << '\n';
    }
  5. Visualizza la conversazione
    merdaccia che non sei altro sei diventato piscioso adesso?
  6. Visualizza la conversazione
    Madonna, quel pdf solo ad aprirlo mi ha fatto venire il mal di testa Comunque grazie del chiarimento

    L'Unreal Engine 4 usa GGX come NDF, qui trovi descritto il tutto nel dettaglio: http://www.unrealengine.com/files/do...tionsNotes.pdf
    Pure il motore dietro a The Order: 1886 usa quello
  7. Visualizza la conversazione
    Pure io sono stato un pò vago con la domanda in verità
    Con Cook-Torrance intendevo (perchè avevo scritto che è usato anche per i videogames) il BRDF intero, per farla breve questo, dove i termini Fresnel, Geometry e Distribution possono essere sostituiti con approssimazioni più o meno valide.
    Quindi di quel "microfacet specular BRDF Cook-Torrance" nella stragrande maggioranza dei casi rimane solo la formula che ho messo sopra perchè poi i vari termini cambiano. Kelemen/Szirmay-Kalos, che non conoscevo, è un altro possibile microfacet BRDF "intero" o l'approssimazione di uno dei termini di Cook-Torrance? Perchè Googlando velocemente ho trovato solo che è una approssimazione di Cook-Torrance del Geometry term, non del BRDF completo.
  8. Visualizza la conversazione
    Ciao, scusa se ti rompo le balle anche sul profilo , ma non so se hai letto l'edit al mio messaggio di ieri.
    Praticamente tu hai detto che ho delle idee confuse su un paio di argomenti, sicuramente dovuto al fatto che ho studiato da autodidatta.
    Potresti dirmi a quali argomenti/idee ti riferivi così posso approfondirli/chiarirli?
  9. Come volevasi dimostrare, ad usare i vecchi array alla C...
  10. Non preoccuparti, anche perché per ora (se hai visto nel topic) mi sto concentrando maggiormente sull'apprendimento della programmazione Con le slide proseguirò quando penserò di essere ad un buon punto con quella
  11. Mi sa di sì.
    Il C++ ha un po' di belle cose per la gestione automatica della memoria, ma tutti lo usano in modo ignorante coi puntatori e si finisce sempre così...

    Immaginavo fosse un altro mondo per le opportunità di lavoro.
  12. Mi sa che ho passato troppo tempo a fare il language-lawyer su stack overflow un "oggetto" tecnicamente in C++ è un area di memoria, intendevo quello, non necessariamente un'istanza di una classe.
    Boh se ad ogni iterazione vi serve un vector grande non ci son problemi, giustamente ad ogni iterazione usa sempre lo stesso array allocato; se ad un certo punto tutto quello spazio non vi serve più e volete deallocare davvero probabilmente basta far uscire di scope il vector (un po' più sicuro che chiamare esplicitamente il distruttore).
  13. L'unico modo per avere un memory leak in senso stretto (tutti i riferimenti ad un'area di memoria da deallocare vengono persi) è avere un vector di puntatori ad oggetti che andrebbero deallocati, cosa che il distruttore del vector non farà; ci sono comunque gli smart pointer.

    Se parli di sprechi di memoria in senso più generico, l'unica cosa da ricordare è che i vector non riducono la propria capacità, quindi dopo una clear() potrebbe essere che tu stia continuando ad usare lo stesso array dietro le quinte, magari molto più grande di quel che ti servirebbe. In tal caso il work-around classico è la swap(): http://stackoverflow.com/questions/1...-an-stl-vector
    In C++11 è stata aggiunta anche la funzione shrink_to_fit(), ma è solo un "suggerimento" al vector, potrebbe anche fregarsene: http://www.cplusplus.com/reference/v...shrink_to_fit/
    (oddio, teoricamente direi che potrebbe fregarsene anche dello swap, ma è sensato assumere che chiedendogli di creare un nuovo vector con gli N elementi che gli dai tu, la capacità sarà effettivamente N )

    Come mai ti sembra che avvenga un memory leak?
  14. Eh l'ho notato, ma non ho idea di dove approfondire la cosa... Per quanto riguarda gli esercizi (perdonami, non voglio metterti fretta ma è solo per ricordartelo)?
  15. Ok, diciamo che riguarda anche il fatto che non ho studiato bene le traslazioni/rotazioni in geometria e algebra quindi mi è tutto parecchio difficile da seguire.
    La scheda successiva sui poligoni è gia più chiara per esempio
Visualizzazione dei messaggi di 61 75 di 2496
Dati personali di cifa the king

Informazione di base

Data di nascita
December 31, 1988 (25)
Dati personali di cifa the king
Città:
Londra

Firma




Objection!

Statistiche


Messaggi inseriti
Messaggi inseriti
28,843
Media dei messaggi giornalieri
9.09
Ultimo messaggio
Topic Universitario 18-07-14 12:14:38
Album
Album inseriti
1
Immagini inserite
1
Messaggi ospiti
Messaggi totali
2496
Messaggi recenti
15-07-14 23:23:13
Informazioni generali
Ultima attività
oggi 13:57:12
Registrato dal
16-11-05

72 Amici

  1. 0scar 0scar non è in linea

    Veterano

    0scar
  2. Agave Agave non è in linea

    Pratico

    Agave
  3. Alex64 Alex64 non è in linea

    OneTrueConsoleMaster

    • Invia un messaggio tramite MSN a Alex64
    Alex64
  4. And And ora è in linea

    OG

    And
  5. Andrean Andrean non è in linea

    Divinità

    Andrean
  6. atraX. atraX. non è in linea

    Signore

    atraX.
  7. bexem bexem non è in linea

    Esperto

    • Invia un messaggio tramite MSN a bexem
    • Invia un messaggio tramite Yahoo a bexem
    bexem
  8. BioNherz BioNherz non è in linea

    Apprendista

    • Invia un messaggio tramite MSN a BioNherz
    BioNherz
  9. Bojan Bojan non è in linea

    Pratico

    Bojan
  10. Bonvissuto Bonvissuto non è in linea

    Novizio

    Bonvissuto
  11. Brother's Killer Brother's Killer non è in linea

    Divinità

    • Invia un messaggio tramite MSN a Brother's Killer
    • Invia un messaggio tremite Skype a Brother's Killer
    Brother's Killer
  12. Buemi Buemi non è in linea

    Buemi
  13. Carnage Carnage non è in linea

    Esperto

    Carnage
  14. Cat Cat non è in linea

    佐々木 小次郎

    Cat
  15. Commander Keen Commander Keen non è in linea

    Esperto

    Commander Keen
  16. darkzibo
  17. Darth Revan Darth Revan non è in linea

    Esperto

    Darth Revan
  18. DAV-92 DAV-92 non è in linea

    Professionista

    DAV-92
Visualizzazione degli amici 1 da 18 di 72
Pagina 1 di 4 1234 ultimoultimo