Anıtsal bir astronomik saat, yönetilmiş kamera geçişleri, prosedürel su, cam gezegenler ve tutulma aydınlatmasıyla su basmış gotik bir katedralin içinde geçen 32 saniyelik döngülü bir film için eksiksiz Three.js/WebGL istemi. Chris W, bir Astra çalışması ve diğer modellerle karşılaştırmasını yayımladı.
Üreticinin yayımladığı istemdir. Çeviriler ve yaptığın düzenlemeler sonucu değiştirebilir.
Eksiksiz istem, yazarın 6 Eylül tarihli X gönderisiyle bağlantılı, herkese açık benchmark JSON'ından (totality-engine.prompt) kelimesi kelimesine kopyalanmıştır. Benchmark, istemi 23 Ağustos, GPT-6 Astra xHigh çalıştırmasını ise 4 Eylül tarihliyor; bu yeni oluşturulmuş bir istem değil, yeni derlenmiş bir kaynaktır. Ekli kaynak medya, Astra ile Fable'ı karşılaştırıyor; canlı demo ise özellikle Astra çalıştırmasına işaret ediyor. Sonuç bağımsız olarak yeniden üretilmemiştir.
Three.jsWebGLsinematikkatedralGLSL
İstem
Şu adla cilalı, görsel açıdan etkileyici ve kendi içinde çalışan, tek dosyalık bir HTML/WebGL deneyimi oluşturun:
totality-engine.html bunu documents/llm-benchmarks içine koyun
Fikri yalnızca açıklamayın. Eksiksiz ve çalışan HTML dosyasını gerçekten oluşturup geçerli dizine kaydedin.
Bir sandbox diyoraması değil, 32 saniyelik döngülü sinematik bir kısa film oluşturun. Ürünün kendisi kamera performansıdır. Etkileşim, film bir kez oynatıldıktan sonra sunulan ek bir özelliktir.
Dünya:
Güneş tutulmasının tamlık evresinde suya gömülmüş gotik bir katedral. Siyah su, nef zeminini kaplar. Transepti dolduran anıtsal pirinç astronomik saat Totality Engine'dir: iç içe orrery halkaları, cam gezegenler, siyah güneş çekirdeği ve altın bağlantı parçalarına sahip, 40 metre uzunluğunda koyu mermer bir sarkaç. Islak kireç taşı, verdigris, mum alevleri ve altın tozu. Her şey prosedürel kodla oluşturulmalıdır. Harici model, doku, görsel, dosya olarak yazı tipi veya ses kullanmayın.
Yönetilmiş film (tek saat, adlandırılmış sekanslar, kesintisiz döngü):
0,0–4,0 sn TOZ
Aşırı yakın plan. Tek bir toz zerresi kırmızı-altın renkli bir ışık huzmesinde dönüyor. Bağlam neredeyse yok. Yavaş ileri kamera hareketi.
4,0–10,0 sn NEF
Geri çekilin ve yükselin. Katedralin transeptinde, siyah suyun diz hizasına kadar içindeyiz. Kaburgalı tonozlar sisin içinde geriye doğru uzanıyor. Sarkaç soldan kadraja giriyor; ağır ve yavaş hareket ederek kütlesini hissettirecek kadar yakından geçiyor. Su halkaları kameradan dışarı doğru yayılıyor.
10,0–18,0 sn YÜKSELİŞ
Sarkacın yukarı yönlü salınımını takip edin. Tonozdaki orreryyi ortaya çıkarın: farklı eğimlerde en az dört iç içe pirinç halka, atmosferleri birbirinden farklı üç cam gezegen (biri bulutlu, biri halkalı, biri fırtına bantlı) ve siyah güneş çekirdeği. Triforyum boyunca mum kümeleri. Altın tozu yerçekimine karşı yukarı doğru düşüyor.
18,0–24,0 sn GEÇİŞ
Kamera orrerynin içinden geçsin. Halkalı gezegenin camından geçin (şeffaflık hilesi değil, kırılma kullanın), bir an için halka düzlemini takip edin ve siyah güneşe doğru çıkın. Sarkacın bir sonraki salınımı, ışığı çevresinde zayıf bir kütleçekimsel mercek gibi büksün.
24,0–30,0 sn TAMLIK
Korona, en dıştaki orrery çarkına dönüşen beyaz-altın bir ateş halkası halinde patlasın. İşitiliyormuş hissi veren tek bir saat tıkırtısı: tüm halkalar kusursuz bir hizaya gelecek şekilde bir anda otursun, ardından korona sabit kalsın. Beyaza geçiş yapmayın. Tüm makinenin siluetini ateş halkasının önünde tutun.
30,0–32,0 sn KODA
Kare 0'la eşleşen yavaş bir devam hareketine yumuşakça geçin; böylece döngü görünmez olsun. Ani kesme kullanmayın.
İlk tam oynatmadan sonra sürükleyerek yörüngede dolaşmayı, fare tekerleğiyle yakınlaşıp uzaklaşmayı ve "Filmi yeniden oynat" kontrolünü etkinleştirin. Duraklat düğmesi her zaman çalışmalıdır. İsteğe bağlı: 1–5 tuşları sekans başlangıçlarına atlasın.
Sahne tasarımı:
- Belirgin bir ön plan / orta plan / arka plan oluşturun. NEF sekansında sarkaç ön planda yer alsın. Tonozlar ve sis derinliği taşısın.
- Makinenin devasa ölçekte algılanması için insan ölçeğinde en az iki referans kullanın (suya gömülmüş bir sıra, devrilmiş bir sivri kule veya mum sırası).
- Su gerçek bir malzeme olsun: orrerrynin yansımaları, hafif bir fresnel etkisi, yavaş yer değiştirme ve sarkaçla kameranın oluşturduğu halkalar.
- Cam gezegenler parlayan küreler değil, kalın camdan oluşsun. En az birinin içinden bozulmuş bir katedral görünmelidir.
- Pirinç ağır ve yoğun görünsün: gölgede koyu, yalnızca kenarları korona ışığını yakalasın.
- Mum alevleri ve altın tozu instancing ile oluşturulsun. Toz yalnızca YÜKSELİŞ ve TAMLIK sırasında yukarı doğru çekilsin.
- Kaburgalı tonozlar, uçan payanda siluetleri ve uzak duvarda siyah güneşle hizalanmış dev dairesel gül pencere / tutulma açıklığı kullanın.
- Sınırlı ve sabit palet: ıslak kireç taşı #8a8680, pirinç #c4a574, verdigris #2f6f66, tutulma koyu kırmızısı #6b1020, korona #ffe9c2, siyah su #05070c, altın tozu #e6c27a. Camgöbeği yok, macenta yok, neon yok, gökkuşağı yok, mor-siyah "AI görünümü" yok.
- Tipografi: küçük bir "TOTALITY ENGINE" başlığı ve sekans adı kullanın; görünüm sinematik olsun, kontrol paneli gibi olmasın.
Teknik gereksinimler:
- Kararlı bir CDN üzerinden Three.js kullanın. Tüm HTML, CSS ve JS tek dosyada olsun.
- Tüm animasyonları adlandırılmış sekans aralıklarına sahip tek bir geçen süre saatiyle yönetin. Bağımsız Math.random döngüleri, shader'larda Date.now veya tohumlanmamış gürültü kullanmayın. Yalnızca tohumlanmış RNG kullanın; sabit tohum 0xA2E1.
- Kamera filmi, büyük hareketlerde ease-in-out kullanan yumuşak enterpolasyonla ilerlesin; sarkaçta daha ağır bir easing kullanın (kütlesi var) ve TAMLIK sekansına uzun kuyruklu bir yerleşmeyle girsin. Ana kamera hareketi olarak doğrusal yörünge kullanmak başarısız sayılır.
- Rol yapıyormuş gibi görünen hazır malzemeler yerine özel GLSL kullanın (ShaderMaterial veya tam ekran geçişi):
1. Su (yansıma + fresnel + yavaş yer değiştirme)
2. Siyah güneş koronası (sprite değil, ateş / plazma)
3. Sarkaç merceklenmesi (GEÇİŞ sırasında bobun yakınında ışık bükülmesi)
4. En az bir gezegen için kalın cam
- Toz, mumlar ve tekrarlanan taş/pirinç hücreleri için InstancedMesh kullanın. Binlerce bağımsız Mesh nesnesi oluşturmayın.
- Post-processing kullanılabilir ancak aydınlatmanın yerini alamaz. Bloom kullanırsanız yalnızca koronaya ve mumlara hafifçe uygulayın. Tüm sahne üzerinde UnrealBloom kullanmak başarısız sayılır.
- Atmosferi sis, ıslak yansımalar ve tutulma açıklığı oluştursun. Gerçekten bir shader tarafından yönlendirilmiyorsa ucuz şeffaf konileri "tanrı ışınları" olarak kullanmayın.
- Duyarlı tasarım kullanın, tarayıcı penceresinin tamamını kaplayın, yeniden boyutlandırmayı yönetin ve 2023 model bir dizüstünde 60 fps hedefleyin. Seçim yapmak zorundaysanız kamera filmini kısmadan önce parçacık sayısını azaltın.
- Küçük ve göze batmayan bir arayüz kullanın: başlık, geçerli sekans, duraklatma, yeniden oynatma. FPS sayacı, dat.gui veya açık bırakılmış hata ayıklama yardımcıları kullanmayın.
- TODO yorumları, sözde kod, yer tutucular, eksik işlevler veya "X ile daha iyi olurdu" ifadeleri kullanmayın.
- Yükleme sırasında film kendiliğinden başlasın. Başlat düğmesinin arkasında sabit bir kare bırakmak başarısız sayılır.
Kalite ölçütü:
Bu, bir three.js örneği değil, kısa film karesi gibi görünmeli. 26. saniyede alınan bir ekran görüntüsü "tutulma anındaki katedral büyüklüğünde saat" izlenimini vermiyorsa işiniz bitmiş değildir. Daha fazla nesne eklemeden önce kompozisyonu, malzemeleri ve kamerayı iyileştirin.
Bu istem nasıl kullanılır?
01
Doğru araçla başla
Tercih ettiğin kodlama asistanını veya 3D aracını aç. Örnekte belirtilen modeli başlangıç noktası olarak kullan ve bağlantılı projelerin kurulum talimatlarına bak.
02
Değiştireceğin bir şey seç
Konuyu, görsel tarzı veya ortamı değiştir. Kamerayı ve etkileşimi net tanımla. Önce küçük bir sürüm oluştur, sonra ayrıntıları tek tek iyileştir.
03
Sahneye özgün öğeler ekle
Özel bir karakter veya nesne için kısa bir nesne açıklamasından ya da referans görselden 3D model oluştur ve projene aktar.
Önizlemeler ilgili üreticilere aittir. Kodu veya varlıkları yeniden kullanmadan önce özgün kaynağı ve proje lisansını kontrol et.