Podziękowania Podziękowania:  0
× tak × tak:  0
× nie × nie:  0
Na fronta! Na fronta!:  0
Strona 9 z 9 PierwszyPierwszy ... 456789
Pokaż wyniki od 81 do 89 z 89

Wątek: Czemu ludzie się tego nie uczą...

  1. #81
    Member
    Awatar Pawelkos
    Dołączył
    Dec 2004
    Lokalizacja
    UK
    Postów
    1814
    Podziękowania

    Domyślnie


    Reklama widoczna tylko dla niezalogowanych użytkowników
    Dlaczego straszny off-top? Moze temat troche odbiega od glownego watku ale mimo wszystko wydaje mi sie dosc powiazane. Zaciekawilo mi mnie to co tu piszecie deshu i CgBartosz. Chyba ze rzeczywiscie inni bywalcy forum tez uwazaja to za byt duzy offtop wtedy warto byloby zalozyc dla tej waszej dyskuji osobny watek bo dosc ciekawa

  2. #82
    member of
    Awatar olaf
    Dołączył
    May 2009
    Lokalizacja
    szczecin
    Postów
    10038
    Podziękowania

    Domyślnie

    W nowym wątku pewnie będzie ciężko to znaleźć. W sumie fajnie przeszliście od teorii do praktyki więc każdy Wannabie może od razu powąchać problem bez zderzenia się twarzą ze specyfikacją i dokumentacją, co zawsze na początku boli ;)
    nosiłem kalesony zanim było cool

  3. #83
    Paweł Grzelak
    Awatar deshu
    Dołączył
    Dec 2005
    Lokalizacja
    W-wa
    Postów
    2402
    Podziękowania

    Domyślnie

    Ok, spoko chłopaki, w takim razie kontynuujmy tutaj.

    CgBartosz:
    Wrzucilem na wetransfer testowy exr w 2k i w 8k:
    https://we.tl/t-az9nyBDT0Z

    2k wykonuje się u mnie poniżej 3sek, 8k to już ponad 30sek.

    Zupdatowałem VrayZdepthCalc.ms - teraz printuje czas szukania wartości przez PyMs.exe.

    Bardzo chętnie przyjmę wszelkie pomysły na optymalizacje:)

  4. #84
    Member
    Srebrna Galeria
    Awatar polka dot
    Dołączył
    Apr 2004
    Postów
    6388
    Podziękowania

    Domyślnie

    dzięki chłopaki za ciekawą dyskusję, dobrze się to czyta
    wszystko jest tobą. jak zamierzasz się traktować?

  5. #85
    Member
    Awatar CgBartosz
    Dołączył
    Dec 2006
    Lokalizacja
    Vancouver, British Columbia
    Postów
    212
    Podziękowania

    Domyślnie

    Heja, Deshu,

    Zlozylem apke w c ale wiekszosc czasu spedza na czytaniu pliku z dysku. Czy exr jest skompresowany ? Na moim komputerze cala operacja to okolo 23 sekundy (przy odczycie ~32Mb/s) z czego 22 spedzone na czytaniu danych z dysku.
    Jesli w twoim wypadku cala operacja zajmuje 30 sekund to jest wolniej. Do czego uzywasz kanalu alfa, mozesz zzrezygnowac z wczytywania tego kanalu ? Moze daloby sie policzyc te wartosci wprost ze sceny iterujac po bounding boxach i wybierajac najblizszy i najodleglejszy punkt ?

  6. #86
    Member
    Awatar CgBartosz
    Dołączył
    Dec 2006
    Lokalizacja
    Vancouver, British Columbia
    Postów
    212
    Podziękowania

    Domyślnie

    Zrobilem tescik w innym jezyku i bez alfy (nadal nie wiem po co filtrowac przez alfe). Tutaj ogolny czas to 10.743991487S sekund
    a wartosci ktore otrzymalem to : ::-214.834 -124.402 (Deshu, zgadza sie ? pewnie nie, LOL).

    Co ciekawe, srednia odczytu z dysku to okolo 68Mb/s co sprawia iz mysle ze skompilowalem C++ w debugu (sciagnalem bilbioteki z netu).
    Przebuduje je pozniej w tym tygodniu i sprawdze ponownie C++.

    Kod:
    fn main() {
    
    	let start = PreciseTime::now();
    	
            let mut file = std::fs::File::open("X:/Temp/massivedesign-dd8e20/VrayZdepthCalculator_RGBA_8k.exr").unwrap();
        
    	let mut input_file = InputFile::new(&mut file).unwrap();
    	let (width, height) = input_file.header().data_dimensions();
    
            println!("{} {}",width, height);
        
    	let mut pixel_data = vec![0.0f32; (width*height) as usize];
    	{
    	    let mut fb = FrameBufferMut::new(width, height);
    	    fb.insert_channels(&[("PG.VrayDepthCalculator.B", 0.0)], &mut pixel_data);
    	    input_file.read_pixels(&mut fb).unwrap();
    	}
    	
    	let mut min_val = f32::MAX;
    	let mut max_val = f32::MIN;
    
    	for x in pixel_data.iter_mut() {
    		let y = *x;
       		min_val = min_val.min(y);
       		max_val = max_val.max(y);
    	}
    	
    	println!("::{:.3} {:.3}",min_val,max_val);
    	
    	let end = PreciseTime::now();
    
    	println!("Processing Time: {:.3}", start.to(end));
    
    }
    Kod:
    8192 8192
    ::-214.834 -124.402
    Processing Time: PT10.743991487S
    Ostatnio edytowane przez CgBartosz ; 20-09-18 o 08:57

  7. #87
    Member
    Awatar CgBartosz
    Dołączył
    Dec 2006
    Lokalizacja
    Vancouver, British Columbia
    Postów
    212
    Podziękowania

    Domyślnie

    Hej Deshu,

    Mam dla Ciebie skompilowany modulik pythonowy z ta funkcja. Chcesz sprobowac ?

  8. #88
    Paweł Grzelak
    Awatar deshu
    Dołączył
    Dec 2005
    Lokalizacja
    W-wa
    Postów
    2402
    Podziękowania

    Domyślnie

    Alpha jest mi potrzebna w przypadkach, gdy nie kazdy pixel displacementu trafia w jakiś obiekt. Może byc tak, że na mapie jest np okrągla główka śrubki. Wtedy pixele z vraysamplerinfo ktore nie trafiły w żaden obiekt mają wartość równą 0. Dlatego potrzebuje alphy (de facto binarnej), by nie brac ich pod uwagę.

    Na pewno niepotrzebnie spłaszczam arraye do jednego wymiaru, ale nie znam numpy w ogóle.. To zajmuje czas. Jest wiele pól do optymalizacji.

    Podeślesz co masz, może będę umiał tego uzyć:)

  9. #89
    Member
    Awatar CgBartosz
    Dołączył
    Dec 2006
    Lokalizacja
    Vancouver, British Columbia
    Postów
    212
    Podziękowania

    Domyślnie

    Poszlo na PM. Uzycie bardzo proste:
    Kod:
    import pymodulelib
    pymodulelib.load_exr("sciezka do pliku exr")
    Wszystkie zaleznosci powinny byc statycznie skompilowane z modulem. Dziala z pythonem 3.6.4 [MSVC v.1900 64bit (AMD 64)]

    Dziala ?
    Ostatnio edytowane przez CgBartosz ; 22-09-18 o 10:04

Strona 9 z 9 PierwszyPierwszy ... 456789

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •