Bonjour, J'ai cherché pendant plusieurs jours sur google (et déséspérément) un tutoriel pour le SPED-3 J'aimerais(au possible) savoir comment définir un point dans l'espace et faire des lignes,simplement. Merci Miyoyo
A défaut de tutoriel, tu peux toujours lire ceci : http://dcpu.com/3d-vector-display/ Si tu connais le fonctionnement du moniteur, celui du SPED-3 est quasiment similaire.
Bien merci,mais quelles sont les adresses mémoire? avant ou après les adresses monitoriales? (non,ce n'est pas du français,et je suis belge, DEAL WITH IT)
j'ai pas lu les spec du sped-3 depuis un moment mais si il fonctionne comme l'écran c'est a toi de lui donner un tableau (zone mémoire) a l'initialisation et donc ça peut être a peu pres n'importe ou en ram.
ouh,ca va faire mal mais... Comment on définis une adresse mémoire et surtout combien d'adresses le SPED-3 a besoin? EDIT: Apparament,le SPED-3 a besoin de 2 adresses pour chaque vertex (ligne?)
Code: .--------------------. ----! INTERRUPT BEHAVIOR !------------------------------------------------------ '--------------------' A, B, C, X, Y, Z, I, J below refer to the registers on the DCPU A: Behavior: 0 Poll device. Sets B to the current state (see below) and C to the last error since the last device poll. 1 Map region. Sets the memory map offset to X, and the total number of vertices to render to Y. See below for the encoding information. 2 Rotate device. Sets the target rotation for the device to X%360 degrees. Pour fixer le début de la mémoire allouée au SPED-3, il faut lui envoyer l'interruption 1, avec comme arguments dans X et Y, le début de la mémoire allouée et le nombre total de vertex que tu veux en mémoire. Après pour ajouter un vertex, il suffit de modifier les adresses mémoires comprises entre X et X+2Y.
Désormais,je cherche comment placer un point ou une ligne,j'ai essayé: Code: set X, 1000 set Y, 1000 set Z, 1000 set c, 3 set i, 0 hwi [SPED3] Pour avoir un effet (je m'en fiche de l'effet,juste que ca affiche un truc quoi) Malheureusement sans succès
Tu n'as pas lu la doc du SPED-3 ou nos explications... Tu dois insérer dans la RAM, aux emplacement prévu deux mots qui définisse un vertex. Code: .-----------------. ----! VERTEX ENCODING !--------------------------------------------------------- '-----------------' Each vertex occupies two words of information in the main DCPU RAM. The data is encoded as (in LSB-0 format): First word: YYYYYYYYXXXXXXXX Second word: 00000ICCZZZZZZZZ Where XXXXXXXX is the X-coordinate of the vertex, YYYYYYYY is the Y-coordinate, ZZZZZZZZ is the Z-coordinate, CC is color, and I is intensity. Z is deeper into the screen, if the device is placed face up on the ground, this translates to "up" relative to the user. Possible color values are 0: black, 1: red, 2: green, 3: blue. If the intensity bit is set, the color is drawn as more intense. The black color is meant to barely be visible at all, except for in very dim environments, or if the intensity bit is set. Donc explication: Le premier mot renseigne sur les positions en X et en Y du vertex. Par exemple: 0b0000101100000101 (0x0B05). On découpe ce nombre en deux, 0b00001011 (0x0B) et 0b00000101 (0x05), donc le vertex composé de ce premier mot a Y = 0x0B = 11 et X = 0x05 = 5 Le deuxième mot renseigne sur l'intensité, la couleur et la position en Z du vertex. Par exemple: 0b0000011000000110 (0x0606). Si l'on découpe ce mot comme ce qui est dit dans la doc, on obtient Intensité = 0b1 = 1, Couleur = 0b10 = 2 = vert et Z = 0x06 = 6 Pour terminer mon exemple, on va supposer que l'on a fixé (grâce à l'interruption que je t'ai expliqué) le début de la mémoire du SPED-3 à l'adresse 0x5000. En mettant la valeur 0x0B05 en [0x5000] et 0x0606 en [0x5001], le SPED-3 aura en mémoire un vertex avec X=5, Y=11, Z=6, de couleur verte et d'intensité 1.
Moi, je n'ai pas compris grand chose . Le DCPU n'est pas encore à l'ordre du jour chez moi, j'ai suffisamment à faire avec l'HTML et L.M.M.S..
Bon,re-up,je me suis inspiré d'un autre programme et je me heurte a un problème J'utilise devkit 1.7.6 quand ce code est compilé: Code: .org 0x1000 dat 0x0000, 0x0000 dat 0x00ff, 0x0100 dat 0xff00, 0x0200 dat 0x0000, 0x03ff dat 0xffff, 0x0400 dat 0xffff, 0x05ff dat 0xff00, 0x06ff dat 0x00ff, 0x07ff devkit me crie:
Les .org ne fonctionnent pas avec devkit, mais y'a pas besoin. Demain je te poste un code qui marche super pour imprimer un modèle 3D
xD Par contre un snake en 3D ça risque d'être plus pratique dans le vaisseau avec le projecteur, car les émulateurs utilisent plutôt une vue 3D qui ne respecte pas les proportions (une barre de 10cm à 1m paraitra aussi grosse qu'à 20cm de nous ._.)
faudrait déja voir la fréquence de rafraichissement,si il prend 1 seconde à rafraichir,on va en chier!