CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

countag
countag
Niveau 5
06 mai 2006 à 22:59:23

Pourrais t on bannir : freedom333 ou du moins l avertir ? merci

TomtomClancy : desole je suis pas assez doué en maths et opengl pour t aider, par contre si j ai bien compris tu veux creer un tableau depuis plusieur sous tableau ?

tomtomclancy
tomtomclancy
Niveau 9
06 mai 2006 à 23:02:00

Ni math ni openGL, c´est du directX, enfin le probleme est juste au niveau C++.

Et oui tu as bien compris. c´est ce que je veux faire, mais sans copier par valeur mais plutot par pointeur car bien plus rapide.

Et je suis pour le bannissement du zouave du dessus.
- Ecriture en majuscule
- SMS
- c´est du flood héhé

-Xandam-
-Xandam-
Niveau 4
06 mai 2006 à 23:06:39

et hop ... vos demande a été transmise ( avertir un admin )

Pour des tableaux dans des tableau, tu fais des pointeurs vers un sous tableau et tu met ces pointeurs dans un tableau de pointeurs ?

tomtomclancy
tomtomclancy
Niveau 9
06 mai 2006 à 23:12:49

hum... pas sure d´avoir tout compris.

sFVFHeightMap **m_heightMap;

m_heightMap = new sFVFHeightMap*[nb_case];
pour chaque case {
m_heightMap[i] = new sFVFHeightMap[nb_point];
}

chaque heightMap[i] contient 840 point pour tracer une zone de 20x20.

dans le frustum culling je selectionne (le cone de vision) les partie a afficher ou non.

mais pour les afficher faut les mettre dans un vertexbuffer, et c´est la que je bloc, pour faire cette operation le plus vite possible. D´ou l´idee d´additionner les pointeurs pour former un seul gros tableau d´affichage.

LGV
LGV
Niveau 28
06 mai 2006 à 23:36:00

ton pb est p-e ailleurs ; dans la tres grande majorite des cas, on regenere la quasi totalite des vertex buffers a chaque frame, et la copie des donnees n´est pas un soucis majeur.

- essaye d´estimer la taille des donnees a transferer
- implemente des timers pour verifier que les bottlenecks de ton appi sont bien la ou tu penses qu´ils sont

tomtomclancy
tomtomclancy
Niveau 9
07 mai 2006 à 00:53:29

Rahh !
Je pete un boulon :(
Je vien de rejeter un coup d´oeil au petit landscape que tu m´avais montré.. Je vien de m´apercevoir que tu avais une gestion des LOD.
Tu aurais pas par hasard le code source de ce petit terrain ? :ange:

Erf! Je comprends pas comment tu fais..
- tu as bien un system de patch pour le terrain, tu regarde pas triangle par triangle si il est dans le cone de vision.
- idem pour les LOD, comment tu fais pour que les jointures passent nikel ?
- Et comment tu stock tout ce petit monde ?

désolé ca fait beaucoup de question tout ca :hum:

LGV
LGV
Niveau 28
07 mai 2006 à 12:43:29

"Je vien de rejeter un coup d´oeil au petit landscape que tu m´avais montré.. Je vien de m´apercevoir que tu avais une gestion des LOD. "

la version publiee n´avait pas le morphing (je n´ai fait le vertes shader pour ca que plus tard) et on peut voir le "popping" sur la geometry, quand les LODs changent.

"Tu aurais pas par hasard le code source de ce petit terrain ?"

si, mais ca ne va pas bcp t´aider ; mieux vaut exposer les principes des techniques utilisees, pour que tu puisses l´implementer proprement a ta maniere.

(cherches geomorphing dans google pour des whitepapers traitant du sujet, si besoin)

"tu as bien un system de patch pour le terrain, tu regarde pas triangle par triangle si il est dans le cone de vision."

j´ai bien un systeme de patches (de 8x8 quads, si ma memoire est bonne). Mes patches sont dans un quadtree qui couvre tout le landscape : avec un culling recursif si l´arbre, il est TRES rapide de determiner quels quads sont visibles (un quad partiellement visible donnera qq triangles en dehors du frustum, mais peut importe)

"comment tu fais pour que les jointures passent nikel ? "

avant de collecter les vertices pour le rendu, tu determines les LODs de chaque patchs ; au moment de collecter les vertices, selon les voisins d´un patch, tu generes des transitions (i.e. connection pour passer de 4 triangles a 2 triangles, etc.)
pour aller plus vite, tu precalc tout ca, et pour remplir ton vertex buffer, tu ne fais que des memcpy selectifs (et utilise des primitives indexees !! ..)

"Et comment tu stock tout ce petit monde ? "

les vertices sont statiques, je les memcpy a la volee dans des VB. J´ai plusieurs sets d´indices pour chaque patch, que je copie selectivement vers des IB (selon les transitions de LOD).
Le VB unique qui sert au rendu est regenere a chaque frame, pareil pour l´IB (selon les cas, on pourrait avoir un VB static, et rendre plusieurs morceaux disjoints avec des IB adaptes)

l´idee majeure, c´est : tes vertices doivent etre pret a etre collectes, tu dois utiliser des primitives indexees si possible, la generation des VB et IB doit etre la moins couteuse possible (des memcpy depuis des blocs de "baked data" ou tout est deja pret, c´est parfait), le mecanisme de "collection" des vertices doit etre simple et efficace, le format de tes vertex doit etre le plus simple possible, quitte a equilibrer en faisant un peu plus de boulot dans les shaders (> une bonne balance CPU/GPU pour que aucun ne soit idle)

Chepaolo
Chepaolo
Niveau 6
07 mai 2006 à 17:51:29

Je préfère rester honnete et vous dire que je ne sais RIEN de C++... C´est pourquoi je cherche un bon bouquin, pas trop long(!!!) et facile à comprendre (pour personne ultra débutantes...) :merci:

vessiepleine
vessiepleine
Niveau 10
07 mai 2006 à 18:47:53

essaye ce livre:
http://www.amazon.fr/exec/obidos/ASIN/2744070866/qid=1147020151/sr=1-23/ref=sr_1_2_23/403-4394476-5655612

(pour le c) il doit y avoir la même collection en c++

vessiepleine
vessiepleine
Niveau 10
07 mai 2006 à 19:04:31

tu peux aussi essayer ça:
http://www.priceminister.com/offer/buy/321973/Silverio-Nino-Langage-C-Livre.html

countag
countag
Niveau 5
08 mai 2006 à 10:12:06

peut on savoir si un caractere est dans une chaine de caractere ?

exemple :

if("s" == dansStr("salut")) cout << "ok";

alex6891
alex6891
Niveau 10
08 mai 2006 à 10:23:59

Utilises les fonctions du C pour ça :ok:

Qosimo
Qosimo
Niveau 37
08 mai 2006 à 12:52:29

Problème de passage de tableau par référence résolu. Merci :)

countag
countag
Niveau 5
08 mai 2006 à 13:02:13

alex6891 , je code en c++ mais je ne vois aucune fonction dans la class string qui permet ceci :/

godrik
godrik
Niveau 30
08 mai 2006 à 13:07:35

countag: pourquoi ne pas l´ecrire toi meme ?

countag
countag
Niveau 5
08 mai 2006 à 13:59:11

je vais essaier, on va voir

dynoplasmma
dynoplasmma
Niveau 9
08 mai 2006 à 13:59:36

Facile a faire en plus !
Tu parcours ton tableau de caractere avec un for, et si un caractere est comme celui que tu veux, c´est ok :)

dynoplasmma
dynoplasmma
Niveau 9
08 mai 2006 à 20:54:36

Bonsoir :)

J´ai un probleme avec la SDL...
Je fait mon code, en le separent deja en deux fixhiers, main.cpp et main.h

main.h contient toutes les fonctions.
main.cpp contient le main seulement et inclue main.h

Si je compile et execute, aucunes erreur, ca se lance ensuite, ecran noire...

Bizarre...

Bon, je copie le dossier de projet, dans sa copie, je regroupe TOUT dans le main, exepté la fonction de JYY ram/vram.
Et la ? Ca se compile, puis s´execute, et ca fonctionne correctement.

je vais faire un tours dans les deux dossiers, dans le dossier de la copie, qui a ensuite fonctionner, je retrouve un .layout

Quesque cela veut dire ?
Pourquoi ca n´a pas fonctionner dans le premier cas ?

Merci a tous ceux qui prendront la peine de me lire :)
Et un gros merci a ceux qui me repondront :) :) :)

Fvirtman
Fvirtman
Niveau 10
08 mai 2006 à 21:32:14

Si tu veux faire un programme en fichier séparés, fait le ainsi :

un cas simple : 3 fichiers :

main.cpp
truc.h
truc.cpp

(évite les main.h, il n´y en a pas trop d´intéret je pense)

Dans "truc.cpp" tu mets toutes les fonctions relatives a "truc".
Tu mets également cette ligne :

  1. include "truc.h" // avec des ""

Dans "truc.h" tu mets les prototypes de ces foncti
ons, c´est a dire les fonctions sans leur corps.

Dans le main.cpp, tu mets

  1. include "truc.h"

Et puis tu fais ton main...

regarde dans mon exemple de la promenade comment j´ai fait, par exemple avec futils.h et futils.cpp

dynoplasmma
dynoplasmma
Niveau 9
08 mai 2006 à 21:34:06

Ok je vais proceder ainsi, mais en gros, tout ce qu´il y a dans main.h equivaut a truc.cpp et truc.h

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment