Thursday, March 4, 2010

Heightfield Intersection






4 fuctions have been implemented for Heightfield Intersection.

Heightfield::IntersectTriangle - refer 'MeshBaryTriangle::Intersect' in Luxrender
Heightfield::IntersectPTriangle - refer MeshBaryTriangle::IntersectP' in Luxrender
Heightfield::Intersect - refer 'GridAccel::Intersect' in Luxrender
Heightfield::IntersectP - refer 'GridAccel::IntersectP' in Luxrender

Heightfield::IntersectTriangle and Heightfield::IntersectPTriangle are checking if the ray intersects the plane which consist of 3 points.

Heightfield::Intersect and Heightfield::IntersectP are checking if the ray intersects the cell, while traversing a 2D grid. In a cell, they are building two height field triangles and check if the ray intersects triangles using Heightfield::IntersectTriangle and Heightfield::IntersectPTriangle. To traverse a 2D grid more efficiently, they are considering the ray direction in x and y axies. In this way, they don't have to consider other cells which doesn't have a ray segment above them, and unnecessary calculations will be avoided.

To compare the memory consumption and the speed, memory usage and "TotS/s" of each algorithm for landsee-big.lxs was checked after 10 min rendering. "TotS/s" stands for "Total samples per second" and is an average since the start of the current rendering.

For rendering speed, the implemented intersection algorithm makes rendering slower than the conventional algorithm by 1/4 times approximately.

Conventional intersection algorithm: 236550 TotS/s
Implemented intersection algorithm: 58405 TotS/s

For memory consumption, the implemented intersection algorithm used 71.576 KB, while the conventional intersection algorithm used 443.204 KB. Thus, the new intersectional algorithm is more memory efficient by 6 times approximately.

Conventional intersection algorithm: 443.204 KB
Implemented intersection algorithm: 71.576 KB

In this experiment, following computer was used:

Intel (R) Xeon (R) CPU E5405 @ 2.00GHz, 2.00GHz, 16 GB of RAM
Microsoft Windows XP Professional x64 Edition


1018 325i 3D 3D Printer 3M 500GB 7200RPM 747 850i A-GPS A-ha A8 ACCIDENT Actor Administrator Privilege ADOBE AdSense aGPS Airplane Algorithm Animation Ansur Antennagate API Apple AppleCare April Fool ARLuxrender Asian Assisted GPS ATT Audi Auto Bash Battleship BBC Bejeweled Bejeweled 3 Belkin Bike BITCOIN Black n Decker Blender Blog Blogspot Bluetooth BMW Bose Browser BTC Bump mapping Butter Butterface Butterfly C C++ C220 Calculator Calvin Klein CAR Cartoon Casshern CBR CBR600RR Cell CF CG Chair Chinese Chrome City Hunter CK Clie Clothe Coffee Coffee maker Color Comics Command Prompt Comment Commercial Compiler Computer Computer architecture Computer graphics Computer science Connex Content-Aware Fill Cowboy Bebop CRYPTOCURRENCY Cryptography CURL Cygwin Dabdate DB Decal Design Design thinking Development Digital Camera Digital communication Disaster Diskette Display Dog Dragon Ball Drama Drawing Driving Drying rack DSP Duck E-TRADE EA Earthquake Easter Egg eBay Economy Encryption ENGINEERING Error ESL etc ETH Ethernet expect F1 Face Fashion find Firefox Fish Flight Dynamics Floppy FON Food FREE Fun FWD G4 Game Gangsta Gangster GDAX GFX Ghost GIT Gizmo5 Golf Google Google Analytics Google Voice Gossip GPS Graphics Green Day GTI Gundam Gurren Lagann Hacking Hackintosh HANGOUTS HARRP HASP SRM HCI HDD Headset Helicopter Helio High-tech History Hobby Honda Horror HP HTS Humor Hyundai iBook iBook G4 IKEA Illustration Image processing information theory Initial D Intel Internet Intro Iomega iPad iPhone iPhone 4 iPhone theme iPod iPod Video Iron IU Jailbreak Japan Java Jawbone Jeremy Jordan Jet Jetpack K12KB KAO Ken Block Ketchup Keynote KORBIT Korea Korean Kpop KRAKEN Kumho Kuwait Language Laptop LaserJet LCD Leaf Lego Lenovo Leopard Lexus LG Library Light saber Lightning Linear algebra Linux login LTC LTE Luxrender Lyric M30 MAC MacBook Macintosh MACOS Macross Macross 2 Macross Plus Magic MapReduce MARKET Matlab Mazinger Z MDRCBB Mechanical engineering Memory MESSAGE Microsoft Microwave Miniature Mio MLT Mobile Mobile Phone Moped Motorcycle Motorola Mouse Movie MP4 Music Music video Network Nike NODE. JS Nonlinear Optimization NORWAY Novel Octave Odaiba Olleh OpenGL Opening Orthodontics Oslo OSX Outlook Parody PBRT pctools Peanut Performance Perl Phone Photoshop PHP Picture Pidgin Plane Playstation Poem Polar bear Pop Portuguese post Pragma Prank Call Printer Program PROGRAMMING Protocol PS PUMA Push Push Push II PushPush PwnageTool PYTHON QuickTime R8 RAM RAYTRACING RAZR RC Recording Report Robot Rock Rocket punch RSYNC Russel Crowe RWD Samsung Sandstorm Satellite Satellite Radio Scanner Science Score Script SD SDK Security sed Semantic Web Semiconductor SF Shell SHOW SIP Skype SK네트웍스 Slang Sleeve Soccer SOFTWARE Sonata Song Sounddock Soundgarden Space Spyshot SQL SSD ssh sshd Stanford bunny StarTrek Starwars Stethoscope Steve Jobs Sticker Stock Storage system Subaru Sun Super Deformed T-Shirt Taekwon V TALK TBD Tease Technology Teeth Telecommunication Tennis tethering Textfree TH55 The Perfect Storm Theme TI-89 TIBURON Tires Titanium Tom Mabe Tooth Tooth Explorer Torrent Toshiba Toshiba Power Saver Toy TPS Transformer Tsunami TV TV shows Ubuntu UC Ultrabase UMN Universal Century Unix Unlock USB Used Video Virtuosity Vista Visual Studio VISUALC++ VoIP VW WALLET Wallpaper Wanna Girl Wardriving Web 3.0 Wedding WiFi Wild Willy Windows Windows 7 Windows Vista Wireless WireShark WMV WOW WPS WRE54G X61 xargs XBOX XCode Yamato YF Youtube Z Gundam Zeliard Zuma 김간지 김현국 미국여자 방배추 뽀로로 위성 라디오 유희열 일본여자 조까를로스 주역 천자문 周易 天字文 德經 老子

Blog Archive