Jump to content
  • Advertisement
Sign in to follow this  
Googol PL3X

Photon tracer & networking it

This topic is 3697 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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...?

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites



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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!