BloomCode & Turtlex
Turtlex Turtlex
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π‘Π»ΡƒΠΌΠšΠΎΠ΄. ΠŸΡ‹Ρ‚Π°ΡŽΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ растСний Π½Π° GLSL, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π³ΠΈΠ± Π»ΠΈΡΡ‚ΡŒΠ΅Π² выглядСл рСалистично. ΠœΠΎΠΆΠ΅Ρ‚, Ρƒ тСбя Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ совСты ΠΈΠ»ΠΈ Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹?
BloomCode BloomCode
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, я понимаю, ΠΊΠ°ΠΊ слоТно с ΠΈΠ·Π³ΠΈΠ±ΠΎΠΌ Π»ΠΈΡΡ‚ΡŒΠ΅Π². Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ Ρ‚Ρ€ΡŽΠΊ – Π½Π°Ρ‡Π°Ρ‚ΡŒ с простой плоской Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ полоски, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π΅Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΏΠΎ сплайну. Π’ GLSL ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡƒΠ±ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΡ€ΠΈΠ²ΡƒΡŽ Π‘Π΅Π·ΡŒΠ΅ ΠΈΠ»ΠΈ просто ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ сСрСдину листа. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ тСбя Π±ΡƒΠ΄Π΅Ρ‚ эта базовая кривая, добавь Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ 2D ΡˆΡƒΠΌΠ° ΠΊ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΡ€Π°ΠΉ листа Π½Π΅ Π±Ρ‹Π» идСально Π³Π»Π°Π΄ΠΊΠΈΠΌ. НапримСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ `vec2 noisePos = vec2(u_time, v_uv.y); float lift = noise(noisePos)*0.1;` ΠΈ добавляй `lift` ΠΊ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π΅ y Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ. Π­Ρ‚ΠΎ придаст Π»Ρ‘Π³ΠΊΡƒΡŽ Π²ΠΎΠ»Π½ΠΈΡΡ‚ΠΎΡΡ‚ΡŒ, которая выглядит СстСствСнно. Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ совСт: сдСлай ΠΊΠΎΠ½Ρ‡ΠΈΠΊ листа ΡΡƒΠΆΠ°ΡŽΡ‰ΠΈΠΌΡΡ, смСшивая ΠΈΠ·Π³ΠΈΠ± с расстояниСм Π΄ΠΎ ΠΊΠΎΠ½Ρ‡ΠΈΠΊΠ°. Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ `float tipFactor = smoothstep(0.8, 1.0, v_uv.y); lift *= (1.0 - tipFactor);`, Ρ‡Ρ‚ΠΎΠ±Ρ‹ лист суТался ΠΈ выравнивался ΠΊ ΠΊΠΎΠ½Ρ‡ΠΈΠΊΡƒ. Если Ρ…ΠΎΡ‡Π΅ΡˆΡŒ большС органичСских Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ ΠΏΠΎΠ»Π΅ 3D ΡˆΡƒΠΌΠ° БимплСкса ΠΈ смСщай Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ вдоль Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ. БмСщСния Π΄Π΅Π»Π°ΠΉ нСбольшими β€” ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, 0.02 Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ β€œΠΌΡˆΠΈΡΡ‚ΠΎΠ³ΠΎβ€ Π²ΠΈΠ΄Π°, Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ. И послСднСС: Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ. Напиши Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ смСщСниС для Π·Π°Π΄Π°Π½Π½ΠΎΠΉ UV-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΠΉ Π΅Ρ‘ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½Π½ΠΎΠ³ΠΎ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π°. Π’Π°ΠΊ Ρ‚Ρ‹ смоТСшь Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΠΈΠ²ΡƒΡŽ, Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Ρƒ ΡˆΡƒΠΌΠ° ΠΈΠ»ΠΈ суТСниС нСзависимо, Π½Π΅ пСрСписывая всё Π·Π°Π½ΠΎΠ²ΠΎ. НадСюсь, это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚! Π”Π°ΠΉ Π·Π½Π°Ρ‚ΡŒ, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.