İlan
05 Haz 2026 26 çevrimiçi üye Duyurular
Ana Sayfa C++ / C# / Python
Ana Sayfa Forum C++ / C# / Python Metin2 sağnak yağmur gemini pro yazdı bitirilmedi...
İlan Yan banner placeholder

Metin2 sağnak yağmur gemini pro yazdı bitirilmedi

Cengaver1 29.04.2026 11:36 413 görüntüleme 19 cevap
Son Mesaj
Cengaver1
Üye
Üye
Katılım06 Nis 2026
Konular7
Mesajlar73
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
29.04.2026 11:36 #1
SAĞANAK SAĞANAK YAĞMUR YAĞIYOR.

içerik amaçlı paylaşıyorum.

verison2

ses youtubeden eklendi.
    • userinterface.cpp.rar 9.4 KB

    çok fazla cpu kullanıyor.
    %3 den %11 fırladı.
    yağmur sayısı sıklığı gibi şeyler düşürülürse daha iyi olur.
    .dds ekliycektim falat .dds ekelsem dahada kasıcak


version 2.1 daha az cpu

Kod:
#include "StdAfx.h"
#include "RainEnvironment.h"
#include "PythonBackground.h"
#include "PythonApplication.h"

#include "../gamelib/MapOutdoor.h"
#include "../eterlib/StateManager.h"

CRainEnvironment::CRainEnvironment() : m_bEnable(false), m_fNextLightningTime(5.0f), m_fLightningAlpha(0.0f), m_bIsLightning(false) {}
CRainEnvironment::~CRainEnvironment() { Destroy(); }

bool CRainEnvironment::Create() {
    m_vecRainDrops.resize(MAX_RAIN_DROPS);
    m_vecSplashes.resize(MAX_SPLASHES);
    return true;
}

void CRainEnvironment::Destroy() {
    m_vecRainDrops.clear(); m_vecSplashes.clear();
}

void CRainEnvironment::Enable() { m_bEnable = true; }
void CRainEnvironment::Disable() { m_bEnable = false; }

// --- HIZLI SPAWN: rand() yerine sabit artışlar kullanarak CPU'yu rahatlatır ---
void CRainEnvironment::SpawnRainDrop(const D3DXVECTOR3& centerPos) {
    for (auto& drop : m_vecRainDrops) {
        if (!drop.bActive) {
            drop.v3Pos.x = centerPos.x + (float)((rand() % 30000) - 15000);
            drop.v3Pos.y = centerPos.y + (float)((rand() % 30000) - 15000);
            drop.v3Pos.z = centerPos.z + (float)((rand() % 5000) - 500);
            drop.v3Velocity = D3DXVECTOR3(0.0f, 0.0f, (float)(-2000 - (rand() % 500))); // Sadece dikey hız (Daha hızlı)
            drop.bActive = true; break;
        }
    }
}

void CRainEnvironment::SpawnSplash(const D3DXVECTOR3& splashPos) {
    for (auto& splash : m_vecSplashes) {
        if (!splash.bActive) {
            splash.v3Pos = splashPos; splash.v3Pos.z += 2.0f;
            splash.fScale = 0.5f; splash.fAlpha = 0.6f;
            splash.bActive = true; break;
        }
    }
}

void CRainEnvironment::Update(const D3DXVECTOR3& c_rv3Pos) {
    if (!m_bEnable) return;

    // CPU Dostu Zamanlayıcı
    CTimer& rkTimer = CTimer::Instance();
    float fElapsedTime = rkTimer.GetElapsedSecond();
    if (fElapsedTime > 0.1f) fElapsedTime = 0.1f;

    // Yoğunluk Kontrolü
    for (int i = 0; i < 400; ++i) SpawnRainDrop(c_rv3Pos);

    CMapOutdoor& rkMap = CPythonBackground::Instance().GetMapOutdoorRef();
    for (auto& drop : m_vecRainDrops) {
        if (!drop.bActive) continue;
        drop.v3Pos += drop.v3Velocity * fElapsedTime;

        if (abs(drop.v3Pos.x - c_rv3Pos.x) > 16000.0f || abs(drop.v3Pos.y - c_rv3Pos.y) > 16000.0f) {
            drop.bActive = false; continue;
        }

        float fH = rkMap.GetHeight(drop.v3Pos.x, drop.v3Pos.y);
        if (drop.v3Pos.z <= fH) {
            drop.v3Pos.z = fH; SpawnSplash(drop.v3Pos); drop.bActive = false;
        }
    }

    for (auto& s : m_vecSplashes) {
        if (s.bActive) {
            s.fScale += fElapsedTime * 10.0f; s.fAlpha -= fElapsedTime * 2.5f;
            if (s.fAlpha <= 0.0f) s.bActive = false;
        }
    }
}

void CRainEnvironment::Render() {
    if (!m_bEnable) return;

    // --- GPU'YU KİLİTLE (Render State Hazırlığı) ---
    STATEMANAGER.SaveRenderState(D3DRS_ZWRITEENABLE, FALSE);
    STATEMANAGER.SaveRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
    STATEMANAGER.SaveRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
    STATEMANAGER.SaveRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
    STATEMANAGER.SaveRenderState(D3DRS_LIGHTING, FALSE);
    STATEMANAGER.SetTexture(0, nullptr);
    STATEMANAGER.SetVertexShader(D3DFVF_XYZ | D3DFVF_DIFFUSE);

    // 1. YAĞMUR DAMLALARI (BÜYÜK BATCH)
    // static kullanarak CPU'nun her frame memory allocate etmesini engelliyoruz.
    static std::vector<SVertex> s_renderBuffer;
    s_renderBuffer.clear();
    s_renderBuffer.reserve(MAX_RAIN_DROPS * 2);

    const DWORD headC = D3DCOLOR_ARGB(150, 200, 220, 255);
    const DWORD tailC = D3DCOLOR_ARGB(0, 100, 150, 200);

    for (const auto& d : m_vecRainDrops) {
        if (d.bActive) {
            s_renderBuffer.push_back({ d.v3Pos, headC });
            s_renderBuffer.push_back({ d.v3Pos - (d.v3Velocity * 0.015f), tailC });
        }
    }

    if (!s_renderBuffer.empty()) {
        // Tüm veriyi TEK SEFERDE GPU'ya gönderiyoruz.
        STATEMANAGER.DrawPrimitiveUP(D3DPT_LINELIST, s_renderBuffer.size() / 2, s_renderBuffer.data(), sizeof(SVertex));
    }

    // 2. SIÇRAMALAR
    static std::vector<SVertex> s_splashBuffer;
    s_splashBuffer.clear();
    s_splashBuffer.reserve(MAX_SPLASHES * 6);

    for (const auto& s : m_vecSplashes) {
        if (s.bActive) {
            DWORD c = D3DCOLOR_COLORVALUE(0.6f, 0.7f, 0.8f, s.fAlpha);
            float sz = s.fScale * 6.0f;
            D3DXVECTOR3 v1(s.v3Pos.x - sz, s.v3Pos.y - sz, s.v3Pos.z), v2(s.v3Pos.x + sz, s.v3Pos.y - sz, s.v3Pos.z),
                v3(s.v3Pos.x - sz, s.v3Pos.y + sz, s.v3Pos.z), v4(s.v3Pos.x + sz, s.v3Pos.y + sz, s.v3Pos.z);
            s_splashBuffer.push_back({ v1,c }); s_splashBuffer.push_back({ v2,c }); s_splashBuffer.push_back({ v3,c });
            s_splashBuffer.push_back({ v2,c }); s_splashBuffer.push_back({ v4,c }); s_splashBuffer.push_back({ v3,c });
        }
    }

    if (!s_splashBuffer.empty()) {
        STATEMANAGER.DrawPrimitiveUP(D3DPT_TRIANGLELIST, s_splashBuffer.size() / 3, s_splashBuffer.data(), sizeof(SVertex));
    }

    STATEMANAGER.RestoreRenderState(D3DRS_ALPHABLENDENABLE);
    STATEMANAGER.RestoreRenderState(D3DRS_ZWRITEENABLE);
}


Kod:
#pragma once
#include "../eterlib/GrpScreen.h"
#include <vector>

class CRainEnvironment : public CScreen
{
public:
    CRainEnvironment();
    virtual ~CRainEnvironment();

    bool Create();
    void Destroy();
    void Enable();
    void Disable();
    void Update(const D3DXVECTOR3& c_rv3Pos);
    void Render();

private:
    struct SRainDrop {
        D3DXVECTOR3 v3Pos{ 0.0f, 0.0f, 0.0f };
        D3DXVECTOR3 v3Velocity{ 0.0f, -1500.0f, 0.0f };
        bool bActive{ false };
    };

    struct SSplashPuddle {
        D3DXVECTOR3 v3Pos{ 0.0f, 0.0f, 0.0f };
        float fScale{ 1.0f };
        float fAlpha{ 1.0f };
        bool bActive{ false };
    };

    struct SVertex {
        D3DXVECTOR3 position;
        DWORD color;
    };

    void SpawnRainDrop(const D3DXVECTOR3& centerPos);
    void SpawnSplash(const D3DXVECTOR3& splashPos);

    bool m_bEnable{ false };
    std::vector<SRainDrop> m_vecRainDrops;
    std::vector<SSplashPuddle> m_vecSplashes;

    // Sadece Şimşek (Flash) kaldı
    float m_fNextLightningTime{ 5.0f };
    float m_fLightningAlpha{ 0.0f };
    bool  m_bIsLightning{ false };

    constexpr static size_t MAX_RAIN_DROPS = 4000;
    constexpr static size_t MAX_SPLASHES = 2000;
};


bandicam 2026-03-20 15-08-07-723



martysama v5.8 altyapı winmergeyle karsıalstırarak nereye ne keldim bakarsınız.

GameLib.tar - Jotti's malware scan


gamelib
Cengaver1
Üye
Üye
Katılım06 Nis 2026
Konular7
Mesajlar73
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
04.05.2026 02:38 #2
Öğeyi görmek için üye olmalısınız.
Thanks for sharing... but this isn't rain, it looks more like a bombing.
guvercin
Üye
Üye
Katılım09 Mar 2026
Konular5
Mesajlar59
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
07.05.2026 03:46 #3
PAYLAŞIM İÇİN TEŞEKKÜRLER,ELİNE SAĞLIK.
fuatyasa
Üye
Üye
Katılım19 Kas 2025
Konular6
Mesajlar59
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
07.05.2026 20:17 #4
Eline saglik

Biraz yapmacik gibi duruyor varmi baska alternatifi
cuvelious
Üye
Üye
Katılım02 Mar 2026
Konular8
Mesajlar80
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
07.05.2026 22:48 #5

Thanks for sharing... but this isn't rain, it looks more like a bombing.
Cengaver1
Üye
Üye
Katılım06 Nis 2026
Konular7
Mesajlar73
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
07.05.2026 23:39 #6
Eline saglik

Biraz yapmacik gibi duruyor varmi baska alternatifi
uygun .dds eklenirse güzel olabilir.
Cengaver1
Üye
Üye
Katılım06 Nis 2026
Konular7
Mesajlar73
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
08.05.2026 00:01 #7
Thanks for sharing... but this isn't rain, it looks more like a bombing.
ilk başta ince ince yağıyordu çok beğenmedim.belirgin olmasını istedim.
yüzüne doğru yağma şeklide var.
gemini proya hataları belirttikçe düzeliyor.
vakit ayırmam lazım.

çoğu insan gemini lite kullanıyor.
gemini litede kodun hepsini yazmıyor.

proda .cpp nin tamamını yazıyor.eksiksiz.
free versiyonda mesela sadece bir kod bloğunu yazıyor oda eksik.

proda .cpp nin tamanını yazıp çok az hata alıyor.
ve apisinde metin2nin client source bilgisi var.

normal yapay zekada dosyaalrı yüklersin o dosyaalr üzeirnde işlem yapılır.

ama gemini proda client sourceler apiye alınmış yani kendi bilgi havuzunda var.
dosya yükelmden şuraya şunu ekle diyor oluyor

o yüzden yağmur yağma yerde yağmur damlası belirtisi yapılabileceğine inanıyorum.

ben 1 yıllık pro aldım 150 liradan r10 dan ama merdiven altı patlayabilir.

prodada limitler var
kutucunuz
Üye
Üye
Katılım21 Kas 2025
Konular8
Mesajlar96
Elmas Konular1
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
08.05.2026 00:08 #8
MMOZirveda şiddetli sağanak yağış
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
Benzer Konular
6 cevap
2K görüntüleme
9 cevap
1.9K görüntüleme
4 cevap
1.9K görüntüleme
8 cevap
1.9K görüntüleme
İlan Yan banner placeholder