|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 17.05.2005, 13:29 Titel: Warum nur? |
|
|
CPP: | #include "Cylinder.h"
Cylinder::Cylinder():
m_Device(NULL),
m_VertexBuffer(NULL)
{
}
Cylinder::~Cylinder()
{
Unload();
}
Cylinder::Init(LPDIRECT3DDEVICE9 Device)
{
m_Device=Device;
m_Device->CreateVertexBuffer(sizeof(CylinderVertex)*3, 0, D3DFVF_XYZW | D3DFVF_TEX1,
D3DPOOL_MANAGED, &m_VertexBuffer, NULL);
CylinderVertex *Vertices;
m_VertexBuffer->Lock(0, 0, (void**)&Vertices, D3DLOCK_DISCARD);
Vertices[0].Position=cVector(0.0f, 1.0f, 0.0f);
Vertices[0].TexU=1.0f;
Vertices[0].TexV=1.0f;
Vertices[1].Position=cVector(1.0f, -1.0f, 0.0f);
Vertices[1].TexU=0.0f;
Vertices[1].TexV=1.0f;
Vertices[2].Position=cVector(-1.0f, -1.0f, 0.0f);
Vertices[2].TexU=0.0f;
Vertices[2].TexV=0.0f;
m_VertexBuffer->Unlock();
}
Cylinder::Unload()
{
if(m_VertexBuffer)
{
m_Device->SetStreamSource(0, NULL, 0, 0);//damit der Buffer net mehr benutzt wird
m_VertexBuffer->Release();
m_VertexBuffer=NULL;
}
}
void Cylinder::Render()
{
m_Device->SetFVF(D3DFVF_XYZW | D3DFVF_TEX1);
m_Device->SetStreamSource(0, m_VertexBuffer, 0, sizeof(CylinderVertex));
m_Device->SetTexture(0, NULL);
m_Device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
m_Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
} |
Wieso zeigt der nix an?
Mit den Matrizen und so stimmt alles, andere 3D Objekte konnte ich auch anzeigen, ich habe die klasse schon mal neu geschreiben, hier in eineer sehr einfachen Version, die gehen sollte, die Koordinaten des Dreiecks müssen auch sichtbar sein, und mit der Textur ist egal, weil die dann eigetnlih weiß da gestellt werden sollte.
Derjenige der Sachdienlihce Hinweise zur behebung des Fehelrs lieefert, bekommt die Beta (fast) vor allen anderen. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 17.05.2005, 13:32 Titel: |
|
|
Wieso nutzt du 4Dimensionale Vectoren?
Welche farbe hat das AmbienteLicht?
Sicher das genug Renderstates/Texturestates gesetzt werden? _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 17.05.2005, 13:50 Titel: |
|
|
oh, ja in der main:
CPP: | D3D.GetDevice()->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); |
4D weil ich ne 4D Vectorkalsse habe. Warum weiß ich auc net, Patrick meinte das das ganz tolle wäre...
Lich habe ich gar keins, und auch ausgeschaltet:
CPP: | D3D.GetDevice()->SetRenderState(D3DRS_LIGHTING, false); |
Mein hintergrund ist dunkelblau.
FOlgendes Dreieck kann ich mit DrwaPrimitiveUP mit nem anderne FVF zeichnen:
CPP: | Vertex Dreieck[] =
{ 0.0f, 1.0f, 0.0f, 0xFFFFFFFF,
1.0f, -1.0f, 0.0f, 0xFF00FF00,
-1.0f, -1.0f, 0.0f, 0xFF000000
}; |
und neine, diese dreieck überdecktz auch kein evtles aus meine VertexKlasse, weil ich das zeichnene auskommenteirt habe. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 17.05.2005, 14:08 Titel: |
|
|
Ich weiß nicht, ich vermisse irgendwie die Transformationsmatrix. Wenn das Ding bei 0Z gerendert wird, drüfte man auch nichts sehen. _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 17.05.2005, 14:52 Titel: |
|
|
Wenn man keine Transformatinsmatriz (weltmatriz?) setzt, dürfte sich doch nix änder, wiels doch die Identitätsmatrix ist? Außerdem hat mein Dreieck im Vertexbuffer doch dieselben Koordinaten, wie des des mit DrawUP gerenderten, also, kann es daran schon mal gar net liegen. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 19.05.2005, 05:38 Titel: |
|
|
Schon klar, dass beim Zeichnen eigentlich der w-Anteil des Vectors wegfällt.
Musst du den nicht trotzdem setzen?
Du gibst an 4-Dimensionale Vectoren zu setzen, gibst aber nur dreidimensionale an! Kann das sein, dass sich dann ein Teil der Texturkoordinaten auf die w-Koordinate setzt und das ganze kaputt geht?!?
Also ich würde nen 4-dimensionalen Vector pro Vertex nehmen und einfach ne 1 am Schluss eintragen!
Nur so ein Gedanke! _________________ "Dispatcher und Scheduler sind wie Brüder, bloß anders" |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 19.05.2005, 13:33 Titel: |
|
|
CPP: | cVector(float x, float y, float z=0.0f, float w=1.0f);//für 2DVectoren
| Wie du siehtsttue ich das die ganze Zeit schon Aber naja, mein Fehelr, ich hätte das wohl erwähnen sollen, kann ja keiner ahnen.
aber jetzt da ich statt meinem Vektor einfach 3 floats nehme, geht es auf einmal. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|