Boutique Cinema 4D
Affichage des résultats 1 à 6 sur 6

Discussion: Symétrie de lumières

  1. #1
    Invité
    Date d'inscription
    juin 2002
    C4D version
    R16 Studio
    OS
    Win 7 Pro
    Messages
    4 252

    Symétrie de lumières

    Suite à une remarque judicieuse concernant l'impossibilité de faire une symétrie avec un objet lumière, Parksto s'est lancé dans le code et nous a amené une bonne petite expression à laquelle, j'ai fait quelques petites remarques, je vous livre donc ici l'expression modifiée:
    Ce code est bien sûr créé à la base par Parksto qui j'espère acceptera ces petits correctifs ! :wink:
    La "symétrique" de la lumière est une instance ce qui permet de modifier la lumière originale avec une copie qui utilise les mêmes paramètres, j'ai également ajouté les symétries de rotations pour prendre en charge le cas des spots et lumières directionnelles...

    var symetrie, lumiere, copie, poslumiere, posymetrie, distance, final, copielampe, containerlampe;
    var rotlumiere, rotfinal;

    main(doc,op)
    {

    //symetrie = "x";
    //symetrie = "y";
    symetrie = "z";

    copie=doc->FindObject("lampe copie");
    lumiere = op->GetDown();
    if (!lumiere) return; //si il n'y a pas d'objet enfant on quitte
    if (!instanceof(lumiere, LightObject)) return; //si l'enfant n'est pas une lumière on quitte
    poslumiere = lumiere->GetPosition();
    rotlumiere=lumiere->GetRotation();
    posymetrie = op->GetPosition();

    if (symetrie=="x") {
    distance = poslumiere.x - posymetrie.x;
    final=vector (posymetrie.x-distance,poslumiere.y,poslumiere.z);
    rotfinal=rotlumiere;
    rotfinal.x=-rotfinal.x;
    rotfinal.z=-rotfinal.z;
    }
    if (symetrie=="y") {
    distance = poslumiere.y - posymetrie.y;
    final=vector (poslumiere.x,posymetrie.y-distance,poslumiere.z);
    rotfinal=rotlumiere;
    rotfinal.z=-rotfinal.z;
    rotfinal.y=-rotfinal.y;
    }
    if (symetrie=="z") {
    distance = poslumiere.z - posymetrie.z;
    final=vector (poslumiere.x,poslumiere.y,posymetrie.z-distance);
    rotfinal=rotlumiere;
    rotfinal.x=-rotfinal.x+Radians(180);
    rotfinal.z=-rotfinal.z;
    }

    if (!copie)
    {
    copie=new(InstanceObject); //on créé une instance pour notre lumiere
    copie->SetName("lampe copie");
    var container=copie->GetContainer(); //on accède aux paramètre de cet objet Instance
    container->SetData(INSTANCEOBJECT_SOURCE,lumiere->GetName()); //l'instance pointe sur le nom de la lumiere
    doc->InsertObject(copie,op,lumiere);
    copie->SetContainer(container);
    }
    copie->SetPosition(final);
    copie->SetRotation(rotfinal);

    doc->Message(MSG_UPDATE); //actualisation des modifications du document
    }

    Cette expression doit être placée sur un objet servant de point de symétrie, dans lequel on glisse une lumière, celle-ci sera dupliquée par rapport à un axe définit dans le code (symetrie="z");
    Merci Parsto !

  2. #2
    Dépendant
    Date d'inscription
    juillet 2002
    Messages
    423

    Symétrie de lumières

    C'est du coffee ça ?
    C'est un mélange de C et d'orienté objet ?

    En tout cas, pour quelqu'un qui a l'habitude de programmer (du php entre autre pour mon cas), ça n'a pas l'air trop difficile à comprendre et à mettre en oeuvre...

    Tengaal, ça serait cool un petit dossier avec les bases de coffee, ça me donnerait du courage et certainement à d'autres pour se lancer

    Remarque, xPresso arrive... :roll:
    Ce n'était que le début du commencement.

  3. #3
    Invité
    Date d'inscription
    juin 2002
    C4D version
    R16 Studio
    OS
    Win 7 Pro
    Messages
    4 252

    Symétrie de lumières

    J'avais déjà commencé des doc de base du COFFEE en PDF, c'est sur mon site dans "Astuces 3D" puis dans "Programmation".

    Ce langage est extrêmemnt proche du C++, il est orienté objet avec des classes et des méthodes, c'est vraiment simplissime ! :wink:

  4. #4
    Gourou Avatar de lenogre
    Date d'inscription
    août 2002
    C4D version
    R20 Studio
    OS
    OS 10.12.6
    Messages
    4 372

    Symétrie de lumières

    Merci les amis mais toutes ces lignes de code, j'en fais quoi maintenant ? Y a un lien pour télécharger l'expression ?
    Tout ce que j'écris est à prendre au 15e degré. Car comme dit le proverbe chinois : Quand le dragon d'or, le ragondin ; voilà qui devrait faire taire les critiques et me mettre à l'abri d'attaques frontales.

  5. #5
    Pilier Avatar de parksto
    Date d'inscription
    juillet 2002
    C4D version
    Autre
    Messages
    840

    Symétrie de lumières

    Citation Envoyé par lenogre
    Merci les amis mais toutes ces lignes de code, j'en fais quoi maintenant ? Y a un lien pour télécharger l'expression ?
    il suffit juste de créer un tag "expression COFFEE" sur un object neutre et de copier/coller le code ci-dessus. 8)

    Citation Envoyé par Izostar
    En tout cas, pour quelqu'un qui a l'habitude de programmer (du php entre autre pour mon cas), ça n'a pas l'air trop difficile à comprendre et à mettre en oeuvre...
    ben moi, je programme en php aussi, au depart. quand j'ai vu la similitude, je ma suis dis que je pourrai essayer moi aussi, non mais ! :lol:

    Citation Envoyé par Tengaal
    Merci Parsto !
    merci à toi pour ces corrections, moi j'apprend, toi t'es le prof

  6. #6
    Dépendant
    Date d'inscription
    juillet 2002
    Messages
    379

    Symétrie de lumières

    Salut

    Magistral ! bravo

    Je vois que l'ont peut en vraque déclarer les variables
    var toto, titi, tutu, etc ...

    désormais ont peut le rajouter sur le Tutorial de Tengal !

    Stéphane

Discussions similaires

  1. Symétrie et lumiéres c4d v9.6
    Par robsil dans le forum Général Cinema 4D
    Réponses: 4
    Dernier message: 24/08/2006, 09h59
  2. lumieres...
    Par chips69 dans le forum Eclairage
    Réponses: 3
    Dernier message: 08/08/2003, 13h27

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Mediaworks - Logiciels 3D | Design Internet - Creation site internet