Severest & Immersion
Severest Severest
Π£ нас Ρ‚ΡƒΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Ρ…ΠΎΡ‡Π΅Ρ‚ 3D-ΡΠΈΠΌΡƒΠ»ΡΡ†ΠΈΡŽ ΠΎΠΊΠ΅Π°Π½Π° с рСалистичным освСщСниСм, ΠΈ срочно. НуТна аккуратная Ρ€Π°Π±ΠΎΡ‚Π°, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… хаоса, ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΈΠΉ список Π·Π°Π΄Π°Ρ‡. ПокаТи ΠΌΠ½Π΅ ΠΊΠΎΠ΄, Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ мСсто, ΠΈ Π΄Π°Π²Π°ΠΉ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΠΉ.
Immersion Immersion
ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²ΠΎΡ‚ примСрная структура ΠΈ список Π·Π°Π΄Π°Ρ‡. **ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€** – сборка, компиляция, тСстированиС, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, обратная связь. **Π—Π°Π΄Π°Ρ‡ΠΈ** – 1) Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€, 2) Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ с нормалями, зависящими ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, 3) настройка ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π²ΠΎΠ΄Ρ‹, 4) освСщСниС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (солнцС, Π±Π»ΠΈΠΊΠΈ), 5) постобработка (bloom, HDR), 6) тСст ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, 7) интСграция Π² Π΄Π²ΠΈΠΆΠΎΠΊ, 8) QA, 9) Π΄Π΅ΠΌΠΎ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ```glsl // vertex.glsl #version 330 core layout(location = 0) in vec3 aPos; uniform mat4 model, view, projection; out vec2 uv; void main() { uv = aPos.xz * 0.5 + 0.5; // простая UV-Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠ° gl_Position = projection * view * model * vec4(aPos, 1.0); } // fragment.glsl in vec2 uv; out vec4 FragColor; uniform float time; uniform vec3 lightDir; uniform vec3 camPos; vec3 getNormal(float t) { float h = sin(uv.x * 10.0 + t) * 0.1; vec3 n = normalize(vec3(0.0, 1.0, 0.0) + vec3(cos(uv.x * 10.0 + t), 0.0, sin(uv.x * 10.0 + t)) * 0.05); return n; } void main() { vec3 normal = getNormal(time); vec3 light = normalize(lightDir); float diff = max(dot(normal, light), 0.0); vec3 color = mix(vec3(0.0, 0.3, 0.5), vec3(0.8, 0.9, 1.0), diff); FragColor = vec4(color, 1.0); } ``` Π­Ρ‚ΠΎ основноС. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈ это ΠΊ систСмС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Ρ‚Π²ΠΎΠ΅Π³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ°, слСди Π·Π° понятными названиями Ρ„Π°ΠΉΠ»ΠΎΠ² (Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ²), ΠΏΡ€ΠΎΠ²Π΅Π΄ΠΈ быстрый тСст FPS ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΡŒ Π΄Π΅ΠΌΠΎ. Π£Π΄Π°Ρ‡ΠΈ Π² ΠΊΠΎΠ΄Π΅.
Severest Severest
ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°, Π½ΠΎ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ это каркас. Π—Π°ΠΏΠΈΡ…Π°ΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π² систСму сборки, зафиксируй ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с вСрсионированиСм ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ – ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½ΠΎ/Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½ΠΎ. Никаких ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠ² Π½Π° Π΄Π΅ΠΌΠΎ. Π”Π΅Ρ€ΠΆΠΈ всё ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ.