Photon tracer & networking it

Started by
5 comments, last by Googol PL3X 15 years, 5 months ago
I've completed a photon tracer app, and due the reason it takes hours upon hours (even days) to render a scene with 20 or 30 million polys, I want a way to render it using other peoples computers. It's completely in Java, so I'm hoping I can do it using an embedded applet or something similar. The idea is, that people go to this page, the program sees what work is left to do to render the image, the instructions are sent to the users computer from the host server, the users computer does some calculates in the background using only a few % cpu so as not to disturb the user. Once the work is done, the users computer sends back the colour for that pixel or whatever, and the host updates the image. although, I have no idea how to do this...?
Advertisement
You explained the process pretty well.

Split up your algorithm. Put functionality in your app to load the scene and save the calculations for part of the scene. Have another app able to combine all of the results.
I was thinking of doing that, but it would make the app that the user has much bigger than I want it to be. There was always going to be a single, central app that put together everything and managed who does what, this would on the server or my computer (via a server so I can recieve calculations done). Adapting your idea, perhaps an app that simply caches the work to be done so as to keep the download size of the app to a a few hundred kilobytes, once work is finished, send back work done and get next work.
In terms of getting and sending what work to do, I also had an idea, this was for the main app to have a database of what work there is. It will be under 1 of 3 or possibly 4 states, DONE, NOTDONE, INPROGRESS and possibly SLEEPING for if a computer has done work, but not completed something, like tracing a particular ray. Thoughts?
Are you familiar with Photon rendering project?
I've never seen this project no, it seems to be pretty much what I'm doing at the moment.

Ahh I see, the main differnece between that and what I'm looking for is I don't want people to have to download and install/ run the app, I just want it to run through the browser with little or no interruption.

[Edited by - Googol PL3X on November 1, 2008 11:14:05 PM]



Youn need to find out how to set up a server on the internet which has an accessible IP so that the client programs can open a TCPIP port to it (or maybe tunnel thru HTTP).

Then you have to figure out how to talk all those people into letting you run a program on their computers with all the security problems involved etc -- how you will set up a program to run as a client on those external computers to get thru the security, restrict the background load, etc...


The actual communications of data is pretty straight forward -- though 20-30 million polys can be alot of data to dump thru (even bits of it). The protocols to make the client connect get its assignment and then send back the results is relatively simple.

Task assignments is just a matter of serializing the independant chunks of processing.
--------------------------------------------[size="1"]Ratings are Opinion, not Fact
Ok, I'm now just trying with around 10k polys, and a differnet approach. It is that people go to the page, there's a game, it loads the game as well as the app, and in the background the app also calculates stuff for me, and sends back the information at the same time as playing a small game, much less data to transfer now. Has anyone ever heard of this method before? if so, could you please give me a link.

This topic is closed to new replies.

Advertisement