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
Community-Fossil
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
void Aircraft::move(float fps){ vec3 course = (m_waypoint-m_position)/m_turn; // m_turn = Rotationsfaktor (Wendekreis) course.normalize(); m_course += course; m_course.normalize(); m_position += m_course/1000*m_speed; // 1000 durch fps ersetzten! } |
Quellcode |
|
1 2 3 4 5 6 7 |
0(8) : error C5060: out can't be used with non-varying texCoord Could not initialize shader: 0 Link info --------- No shader objects attached. |
Community-Fossil
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (31.10.2011, 12:10)
Community-Fossil
Ich lass das extra weg, bei manchen läufts da durch.
Zitat von »GLSL 1.5 Specification«
The directive “#version 150” is required in any shader that uses version 1.50 of the language.
Ist ja auch egal, das Problem ist rein mathematisch, alles was du brauchst um mir zu helfen steht oben
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »dot« (31.10.2011, 12:23)
Community-Fossil
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
void Aircraft::move(float fps){ vec3 target = m_waypoint - m_position; target.normalize(); m_course = (1.0f - m_turn) * course + m_turn * target; m_course.normalize(); m_position += m_course/1000*m_speed; // 1000 durch fps ersetzten! } |
Community-Fossil
Community-Fossil
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 53 54 55 56 57 |
mat4 modelview, projection; glGetFloatv(GL_PROJECTION_MATRIX, projection.getArray()); shader[0]->bindShader(); // Shader shader[0]->sendUniform("texture0", 0); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); glEnableVertexAttribArray(2); // Flugzeuge for(unsigned int i = 0; i < aircrafts.size(); i++){ glGetFloatv(GL_MODELVIEW_MATRIX, modelview.getArray()); modelview = aircrafts[i]->getMatrix(modelview); // Transformieren shader[0]->sendUniform4x4("modelview_matrix", modelview.getArray()); // Shader shader[0]->sendUniform4x4("projection_matrix", projection.getArray()); for(int o = 0; o < 4; o++){ // Flugzeugteile glBindTexture(GL_TEXTURE_2D, aircrafts[i]->getTextureID(o)); // Textur glBindBuffer(GL_ARRAY_BUFFER, aircrafts[i]->getVertexBuffer(o)); // Rendern glVertexAttribPointer(GLint(0), 3, GL_FLOAT, GL_FALSE, 0, 0); glBindBuffer(GL_ARRAY_BUFFER, aircrafts[i]->getTexCoordBuffer(o)); glVertexAttribPointer(GLint(1), 2, GL_FLOAT, GL_FALSE, 0, 0); glBindBuffer(GL_ARRAY_BUFFER, aircrafts[i]->getNormalBuffer(o)); glVertexAttribPointer(GLint(2), 3, GL_FLOAT, GL_FALSE, 0, 0); glDrawArrays(GL_TRIANGLES, 0, aircrafts[i]->getVerticesNumber(o)); } } glDisableVertexAttribArray(0); glDisableVertexAttribArray(1); glDisableVertexAttribArray(2); // modelview = aircrafts[i]->getMatrix(modelview); // Transformieren ist: vec3 z = m_course; // lokale Z-Achse z.normalize(); vec3 x = vecCross(vec3(0, 1, 0), z); x.normalize(); vec3 y = vecCross(x, z); y.normalize(); mat4 am = mat4(x.x, x.y, x.z, 0, y.x, y.y, y.z, 0, z.x, z.y, z.z, 0, m_position.x, m_position.y, m_position.z, 1); m *= am; m.rotate(m_rotation[0], 1, 0, 0); m.rotate(m_rotation[1], 0, 1, 0); m.rotate(m_rotation[2], 0, 0, 1); m.scale(m_scale, m_scale, m_scale); return m; // m = modelview die übergeben wird |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DeKugelschieber« (02.11.2011, 10:55)
Werbeanzeige