Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

killmichnich

unregistriert

1

31.05.2009, 18:43

Heightmap

Hi Leute,
ich hab mal wieder ein kleines Problem. Ich versuch grad mir ne heightmap ins Programm zu laden, nur irgendwas mach ich falsch =(

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
CUSTOMVERTEX Triangle[128*128];

    ifstream file;
    int AnzahlX = 128;
    int AnzahlZ = 128;
    char c;

    float aheightmap[128][128];

    file.open("height1.raw", ios::binary);
    for(int z=0; z<AnzahlZ; z++)
    {
        for(int x=0; x<AnzahlX; x++)
        {
            file.get(c);
            aheightmap[z][x]=(float)c;
        }
    }
    file.close();

    int p=0;
    for(int z=0; z<128; z++)
    {
        for(int x=0; x<128; x++)
        {
            CUSTOMVERTEX vertex = {(float)(x-AnzahlX/2), (float)((10.0f/255.0f)*aheightmap[z][x]), (float)(z-AnzahlZ/2), RGB(255, 0, 255), 0, 0};
            Triangle[p] = vertex;
            p++;
        }
    }


    BYTE* VertexBufferStart;

    D_Device->CreateVertexBuffer(sizeof(Triangle),
                                    D3DUSAGE_WRITEONLY,
                                    D3D_CUSTOMVERTEX,
                                    D3DPOOL_MANAGED,
                                    &VB_Triangle,
                                    NULL);

    // Vertex Buffer sperren

    VB_Triangle->Lock(0, sizeof(VertexBufferStart), reinterpret_cast<void**>(&VertexBufferStart), 0);
    memcpy(VertexBufferStart, Triangle, sizeof(Triangle));
    VB_Triangle->Unlock();


und immer wieder:

D_Device->SetStreamSource(0, VB_Triangle, 0, sizeof(CUSTOMVERTEX));

D_Device->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 500);

nur iwie kommt auf dem bildschirm überhaupt nix, wenn ichs zeichnen will =(=(
Is der Code, den ich da hab, denn richtig bzw. sinnvoll?
Würde mich sehr über Hilfe freuen =)

MfG Killmichnich

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

2

31.05.2009, 19:22

beleuchtung richtig?
camera richtig?
transformationen richtig?

:D
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

killmichnich

unregistriert

3

31.05.2009, 19:31

jep das passt alles, wenn ich in das array manuell zahlenwerte einsetz kommt auch was

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

31.05.2009, 19:37

Cullmode richtig rum?
Vertex Format gesetzt?
Was sagt der output der Debug Runtime!?

killmichnich

unregistriert

5

31.05.2009, 19:59

cullmode is an (D_Device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);)
vertexformat passt auch (#define D3D_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1))

und Debugger muss ich sagen hab ich kp weil ich den nie benutze und kp hab wie das funzt oO

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

6

31.05.2009, 20:05

-> falsche werte in der datei

in der systemsteuerung ist irgentwo ein directy symbol da kann man unter
anzeige "use debug version of direct3d" anklicken. dann gibt dir die
datei in dein "ausgabe" fenster des debuggers (bei msvc) mehr oder
weniger nützliche sachen aus

warum soll das terrain in pink sein? :o
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

killmichnich

unregistriert

7

04.06.2009, 14:19

also ich hab das mit dem Debugger jetzt mal ausprobiert, hab aber das Gefühl dass ich irgendwas falsch gemacht hab:

Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: "C:\Users\Gott\Desktop\neu 33\neu 33.exe"
Symbol search path is: C:\Users\Gott\Desktop\neu 33
Executable search path is:
ModLoad: 00400000 0042e000 image00400000
ModLoad: 77260000 77387000 ntdll.dll
ModLoad: 75f00000 75fdb000 C:\Windows\system32\kernel32.dll
ModLoad: 75e50000 75eed000 C:\Windows\system32\USER32.dll
ModLoad: 76060000 760ab000 C:\Windows\system32\GDI32.dll
ModLoad: 76310000 763d6000 C:\Windows\system32\ADVAPI32.dll
ModLoad: 76680000 76742000 C:\Windows\system32\RPCRT4.dll
ModLoad: 727d0000 7298a000 C:\Windows\system32\d3d9.dll
ModLoad: 75d70000 75e1a000 C:\Windows\system32\msvcrt.dll
ModLoad: 751a0000 751a8000 C:\Windows\system32\VERSION.dll
ModLoad: 727c0000 727c6000 C:\Windows\system32\d3d8thk.dll
ModLoad: 73470000 7347c000 C:\Windows\system32\dwmapi.dll
ModLoad: 60ed0000 612ea000 C:\Windows\system32\d3dx9_41.dll
(17d8.1628): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000000 ecx=0012fb08 edx=772b9a94 esi=fffffffe edi=772bb6f8
eip=772a7dfe esp=0012fb20 ebp=0012fb50 iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll -
ntdll!DbgBreakPoint:
772a7dfe cc int 3

Werbeanzeige