2012-12-23 40 views
6

Başsız bir sunucuda (tek başına bir sunucu, Amazon AWS veya benzeri) üç yıldız çalıştıran sunucu tarafına sahip olmanın bir yolu var mı?sunucu tarafı geri dönüşü oluşturma

Şu anda, kullanıcının tarayıcısı WebGL'yi desteklemediğinde tuval işlemeye (yalnızca performans nedenlerinden dolayı tel kafes) geri dönüyorum. Bu, gerçek zamanlı etkileşim için yeterince iyidir, ancak uygulamanın mantıklı olması için kullanıcıların, büyük bir gecikmeyle bile olsa, ışıklar, gölgeler, post işleme vb. Ile düzgün şekilde oluşturulmuş bir sürümü görebilmeleri gerekir.

Yani, işlevsel üç.js örneğiyle bir sunucu tarafı hizmet oluşturmak mümkün olabilir mi? İstemci hala tree.js tuval tel çerçeve işlemeyi kullanacaktı, ama sonra ... bir ikinci eylemsizlik, AJAX yoluyla sunucu tarafındaki hizmetten tam bir görünüm talep edip, bir görüntü olarak kaplayacaktır.

Şu anda herhangi bir uygulamaya, kütüphaneye veya böyle bir şeye izin verecek herhangi bir şey var mı (işlevsel bir javascript + webgl + three.js başsız, tercihen linux sunucusunda ve GPU'suzdur)?

PhantomJS akla gelen, ama görünüşe göre henüz WebGL desteklemez: sorununa http://code.google.com/p/phantomjs/issues/detail?id=273

Veya herhangi bir alternatif yaklaşımlar? GPU ve standart bir krom/firefox örneği ile tam bir masaüstü makinesini programlı olarak kontrol etme yoluna gitmek mümkünken, kırılgan ve gerçekten sadece yazılım çözümlerinin olması durumunda oraya gitmek istemiyorum. Bu Konuda

cevap

9

Google Mesa kullanarak Krom testi çalıştırabilirsiniz (anahtar --use-gl=osmesa yoluyla sorunu 97675 bakınız). Mesa'nın en son baskısında bulunan yazılım rasterleştiricisi oldukça titizdir, shaderları dönüştürmek ve CPU üzerinde çalıştırmayı taklit etmek için LLVM kullanımını içerir. İlk maceranız, Mesa'yı inşa ederek, Chromium'u inşa ediyor ve sonra bunları birleştirmeye çalışıyor olabilir. Bir yan not olarak, PhantomJS'nin kendisi için, özellikle de Qt'nin bu yönde ilerlediğinden, yani sadece kendi raster motoru yerine Mesa/LLVMpipe kullanıldığından planlandığım (yakın gelecekte) bir plan da budur. The numbers aslında iyi görünüyor. Daha da iyisi, çevrimdışı, hareketli olmayan tek çekişli çekim için, performans tatmin edici olmaktan çok daha fazla olacaktır.

+0

Tam olarak aradığım şey tam da bu (daha kolay hazır seçeneklerin yokluğunda). Mesa renderer için Chromium desteğinin farkında değildim .. umarım başarıya sahip olurum, ya da PhantomJS'de çalışmaya başlarsanız daha iyi olur :) – yaku

+0

@yaku Chromium'u Mesa renderer ile çalıştırabildiniz mi? – frank

+0

@frank Hayır Yapmadım. Bunu yapamayacağımı söylemek için, sadece büyük yazılım parçaları inşa etmek ve düzeltmek konusunda fazla tecrübem yok. Yine de bir süre sonra tekrar denemek için sabırsızlanıyoruz, ya da PhantomJS ya da diğer mevcut çözümler WebGL'yi destekliyorsa. – yaku

1

Bazı girişler: https://github.com/mrdoob/three.js/issues/2182

Özellikle bu demo nodejs kullanarak sunucu tarafında bazı görüntülerin nasıl oluşturulacağını gösterir.

sayesinde Nico kendi QA altyapısı olarak

+1

Maalesef görünüyor. Hızlandırılmamış ve yazılımda oluşturulmuş olsalar bile tam WebGLRenderer yeteneklerini arıyorum (bu amaç için yaklaşık 1 FPS yeterli olmalıdır). Her nasılsa node.js (veya phantomjs) bir işletim sistemi ile çalışmak için osmesa ya da llvmpipe (?) Gibi bir OpenGL renderer olabilir, ama bu .. ile başlayacağımı bilmiyorum. – yaku

0

Aşağıdaki bağlantılar AWS ile ilgili sorununuzu çözmeyecektir, ancak size bir ipucu verecektir. Ben de benzer bir mimari ile uygulama üzerinde çalışmaya ve bu örneklerle karşılaştım am

: Bu CanvasRenderer yalnızca gibi

Multiplayer game with realtime socket.io

My original question on similar architecture

+1

Fiyat Al Bağlantılı sayfa (lar) değiştiğinde cevabın geçersiz hale gelebileceğinden, referans link (ler) in yanıtının önemli parçaları. – DavidPostill

İlgili konular