Ergebnis 1 bis 2 von 2

Thema: Gimp-Mit Sheme-Erweiterung Planeten Rendern

  1. #1
    TP-Junior
    Registriert seit
    Jan 2012
    Beiträge
    7

    Gimp-Mit Sheme-Erweiterung Planeten rendern

    Hallo Leute,

    ich habe mich in letzter Zeit viel mit Gimp beschäftigt. Dabei ist mir auch diese Tutorial (meiner Meinung nach eines der Besten) begegnet. Nun möchte ich dieses Tutorial in einem Script-Fu (Scheme) umsetzten.
    Da dies allerdings mein 1. Skript ist, brauche ich ein wenig Hilfe von euch.
    Vielen Dank schon im Voraus

    P.S.: Wenn das Skript fertig ist, veröffentliche ich es hier.

    Und hier der Code (ihr könnt auch die .txt im Anhang benutzen):
    Code:
    ;This programm is based on two parts.
    ;The first part is from 
        ;planet-render-gtuts-edition.scm
        ; (C) 2005-2007 Aurore D. "Rore", aurore.d@gmail.com 
        ;
        ; This program is free software; you can redistribute it and/or modify
        ; it under the terms of the GNU General Public License as published by
        ; the Free Software Foundation; either version 2 of the License, or
        ; (at your option) any later version.
        ;
        ; This program is distributed in the hope that it will be useful,
        ; but WITHOUT ANY WARRANTY; without even the implied warranty of
        ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        ; GNU General Public License for more details.
    ;The second part is written from "Regedit"
    ;It's free software, too.
    ;There is no warranty! Use on own risk!
    
    
    
    
    (define (neuer-planet durchmesser color lichtwinkel color2)
    (let* 
        (    ;Variablen definieren
            ;Zu erst das Bild
            (dasBild (car(gimp-image-new (* durchmesser 1.15) (* durchmesser 1.15) RGB))) ; Bild definieren
            ;dann die Ebenen
            (sterne (car (gimp-layer-new dasBild (* durchmesser 1.15) (* durchmesser 1.15) 0 "Sterne" 100 NORMAL)))
            (basis (car (gimp-layer-new dasBild (* durchmesser 1.15) (* durchmesser 1.15) 0 "Basis" 100 NORMAL)))
            (textur)
            (textur2)
            (relief)
            (wolken)
            (atmosphaere (car (gimp-layer-new dasBild (* durchmesser 1.15) (* durchmesser 1.15) 0 "Atmosphaere" 100 NORMAL)))
            (atmosphaere2)
            (schatten (car (gimp-layer-new dasBild (* durchmesser 1.15) (* durchmesser 1.15) 0 "Schatten" 100 NORMAL)))
            (schattenkopie)
            (schattenkopie2)
            (horizont (car (gimp-layer-new dasBild (* durchmesser 1.15) (* durchmesser 1.15) 0 "Horizont klein" 100 NORMAL)))
            (horizont2 (car (gimp-layer-new dasBild (* durchmesser 1.15) (* durchmesser 1.15) 0 "Horizont gross" 100 NORMAL)))
            (verschiebungx (sin (* (/ lichtwinkel 180) *pi* -1) )  )
            (verschiebungy (cos (* (/ lichtwinkel 180) *pi*) )  )
            (positionx (- (+ (* verschiebungx durchmesser 0.4) (* durchmesser 0.075)) (* (/ 1 6) durchmesser)))
            (positiony (- (+ (* verschiebungy durchmesser 0.4) (* durchmesser 0.075)) (* (/ 1 6) durchmesser)))
            (atmosphaerenmaske)
        )        
    
    
        (gimp-context-push)                                        ;die Maleinstellungen und Forder/Hintergrundfarbe speichern/beiseite legen
        (gimp-image-undo-disable dasBild)                        ;Folgende Arbeitsschritte für "rückgaengig" zusammenfassen
    
        ;Ebenen mit Alphakanal ausstatten (sterne braucht keinen Alphakanal, weil es als nich-transparenter-Hintergrund dient)
        (gimp-layer-add-alpha basis)
        (gimp-layer-add-alpha atmosphaere)
        (gimp-layer-add-alpha schatten)
        (gimp-layer-add-alpha horizont)
        (gimp-layer-add-alpha horizont2)
    
        ;layer ins Bild packen (DRAWABLE machen)
        (gimp-image-add-layer dasBild sterne 0)
        (gimp-image-add-layer dasBild basis 0)
        (gimp-image-add-layer dasBild atmosphaere 0)
        (gimp-image-add-layer dasBild schatten 0)
        (gimp-image-add-layer dasBild horizont 0)
        (gimp-image-add-layer dasBild horizont2 0)
        
        ;Schwarzen Hintergrund löschen
        (gimp-edit-clear sterne)
        (gimp-edit-clear basis)
        (gimp-edit-clear atmosphaere)
        (gimp-edit-clear schatten)
        (gimp-edit-clear horizont)
        (gimp-edit-clear horizont2)
        
        (gimp-context-set-foreground '(0 0 0))                    ;fordergrund schwarz setzen
    
        (gimp-selection-all dasBild)    ;alles auswaehlen
        (gimp-edit-fill sterne FG-IMAGE-FILL) ;alles mit fordergrundfarbe (schwarz) fuellen
        (plug-in-hsv-noise TRUE dasBild sterne 8 3 50 200)
    
        (gimp-selection-none dasBild)                            ;nichts auswaehlen
        (gimp-ellipse-select dasBild (* durchmesser 0.075) (* durchmesser 0.075) durchmesser durchmesser 2 1 0 0)    ;Kreis auswaehlen[startpunkt x(von oben-links):startpunkt y(von oben-links):breite:höhe:art(0=Auswahl hinzufügen, 1=Auswahl abziehen 2=Auswahl ersezen, 3=Schnittmenge bilden)]
        (gimp-context-set-background color)
        (gimp-edit-fill basis BG-IMAGE-FILL)                     ;alles mit Hintergrundfarbe (#0a4664) fuellen
        (gimp-edit-fill atmosphaere BG-IMAGE-FILL)                 ;alles mit Hintergrundfarbe (#0a4664) fuellen
        (gimp-selection-layer-alpha atmosphaere)
        (gimp-selection-shrink dasBild (* durchmesser 0.1))        ;Auswahl schrumpfen
        (gimp-selection-feather dasBild (* durchmesser 0.2))
        (gimp-layer-set-lock-alpha atmosphaere 1)
        (gimp-selection-invert dasBild)                            ;auswahl invertieren
        (gimp-context-set-background color2)                    ;farbe fuer atmosphaere auswaelen
        (gimp-edit-bucket-fill atmosphaere 1 5 90 0 FALSE 0 0)    ;atmosphaere mit farbe füllen (planetenkern) [Overlay-mod!!!!! daher bucket mit parameter 5]
        (gimp-selection-invert dasBild)
        (gimp-edit-fill atmosphaere FG-IMAGE-FILL)                ;atmosphaere mit schwarz füllen
        (gimp-selection-layer-alpha atmosphaere)                ;auswahl erneuern
        (gimp-selection-shrink dasBild (* durchmesser 0.033))    ;und verkleinern
        (gimp-selection-feather dasBild (* durchmesser 0.1))
        (gimp-selection-invert dasBild)
        (gimp-edit-bucket-fill atmosphaere 1 0 85 0 FALSE 0 0)    ;die atmosphaere mit atmosphaerenfarbe(color2) fuellen [85% Transparenz!!!!!!!!]
        (gimp-layer-set-mode atmosphaere 4)                        ;die atmosphaerenebene auf ebenenmodus "bildschirm" stellen
    
        ;auswahl-mit-alphakanal erstellen
        (gimp-selection-all dasBild)
        (gimp-fuzzy-select basis (* durchmesser 0.575) (* durchmesser 0.575) 15 1 1 0 0 0)    ;erstellt die auswahl durch abziehen (negativ)
        (gimp-selection-invert dasBild)                        ;macht die auswahl wieder positiv
    ;------------------------------------------------------------------------------------------------------------------------------------------
        (gimp-ellipse-select dasBild positionx positiony (* durchmesser 1.333) (* durchmesser 1.333) 2 1 0 0)    ;
        (gimp-edit-fill schatten FG-IMAGE-FILL)                    ;schatten mit schwarz füllen
        (gimp-selection-all dasBild)
        (plug-in-gauss 1 dasBild schatten (* durchmesser 0.417) (* durchmesser 0.417) 1)
        (gimp-layer-set-opacity schatten 95)                    ;schatten weichzeichnen
    
        ;2 schattenkopien erzeugen(insg. 3 [schatten,schattenkopie,schattenkopie2])
        (set! schattenkopie (car (gimp-layer-copy schatten dasBild)))        ;schatten-ebene dublizieren(neue ebene heisst schattenkopie)
        (gimp-layer-add-alpha schattenkopie)                                            ;und bekommt einen alphakanal
        (gimp-image-add-layer dasBild schattenkopie 0)                                    ;und zum Bild hinzufuegen
        (gimp-image-lower-layer dasBild schattenkopie)                                    ;ebene nach unten schieben
        (gimp-image-lower-layer dasBild schattenkopie)                                    ;ebene nach unten schieben (kann man mit ner whileschleife machen, lohnt aber nicht)
        (set! schattenkopie2 (car (gimp-layer-copy schatten dasBild)))        ;schatten-ebene dublizieren(neue ebene heisst schattenkopie)
        (gimp-layer-add-alpha schattenkopie2)                                            ;und bekommt einen alphakanal
        (gimp-image-add-layer dasBild schattenkopie2 0)                                    ;und zum Bild hinzufuegen
        (gimp-image-lower-layer dasBild schattenkopie2)                                    ;ebene nach unten schieben
        (gimp-image-lower-layer dasBild schattenkopie2)                                    ;ebene nach unten schieben (kann man mit ner whileschleife machen, lohnt aber nicht)
    
        ;die 2 schattenkopien in schattenkopie2 vereinen
        ;--> superumstaendlich das mit gimp-image-merge-visible-layers zu tun, aber was besseres habe ich nicht gefunden
        ;also nur die schattenkopien sichtbar lassen
        (gimp-drawable-set-visible sterne FALSE)
        (gimp-drawable-set-visible basis FALSE)
        (gimp-drawable-set-visible atmosphaere FALSE)
        (gimp-drawable-set-visible schatten FALSE)
        (gimp-drawable-set-visible schattenkopie TRUE)
        (gimp-drawable-set-visible schattenkopie2 TRUE)
        (gimp-drawable-set-visible horizont FALSE)
        (gimp-drawable-set-visible horizont2 FALSE)
        ;und dann die sichtbaren vereinen
        (set! schattenkopie (car (gimp-image-merge-visible-layers dasBild 0)))
        (gimp-drawable-set-name schattenkopie "Schattenkopie")                    ;Kopie wieder auf alten namen zurruecksetzen
    
        (gimp-drawable-set-visible sterne TRUE)
        (gimp-drawable-set-visible basis TRUE)
        (gimp-drawable-set-visible atmosphaere TRUE)
        (gimp-drawable-set-visible schatten TRUE)
        (gimp-drawable-set-visible schattenkopie FALSE)
        (gimp-drawable-set-visible horizont TRUE)
        (gimp-drawable-set-visible horizont2 TRUE)
    
        ;auswahl-mit-alphakanal erstellen (die Folgenden 4 Zeilen sind nötig, weil ich die Auswahl aufgrund meiner Kentnisse
        ;nicht als pfad speichern kann(ich finde nur die funktion auswahl-aus-pfad ?!))
        (gimp-selection-all dasBild)
        (gimp-fuzzy-select basis (* durchmesser 0.575) (* durchmesser 0.575) 15 1 1 0 0 0)    ;erstellt die auswahl durch abziehen (negativ)
        (gimp-edit-clear schattenkopie)                                                        ;löscht den schatten der über den Planeten hinausgeht (schattenkopie-ebene)
        (gimp-edit-clear schatten)                                                            ;löscht den schatten der über den Planeten hinausgeht (schatten-ebene)
        
        ;hier muss ich noch die ebene schattenkopie(im original shadow-mask) als ebenenmaske für atmosphaere setzen (schritt 5)
        (set! atmosphaerenmaske (car (gimp-layer-create-mask atmosphaere 0)))                            ;erstellt die maske "atmosphaerenmaske"    
    
    
    
        ;(set! atmosphaerenmaske (car (gimp-layer-copy schattenkopie dasBild)))        ;ebenenmaske mit schattenkopie füllen
        ;warum funktioniert das nicht? gimp sagt, es gebe wahrscheinlich die ebene nicht mehr 
    
    
        (gimp-layer-add-mask atmosphaere atmosphaerenmaske)                                                ;und einfuegen
        
        ;und hier muss noch der Pfad/die Auswahl um den Planeten nachgezogen werden
        ;ich kriege das mit dem Pfad aber nicht hin. Danach muss auf diese
        ;ebene eine ebenemaske gesetzt werden (schritt 7)
    
        (gimp-image-undo-enable dasBild)        ;hier endet der bereich, der bei "rueckgaengig" als ein schritt gilt
        (gimp-display-new dasBild)                ;Bild ausgeben
        (gimp-context-pop)                        ; Maleinstellungen zurruecksetzten
    
    ;ende let*
    )
    ;Ende neues-bild
    )
    
    (script-fu-register "neuer-planet"
        "<Toolbox>/MeineScripte/Bild/Erstellen/Planet..."
        "Erzeugt einen Planeten im Weltall aus Kreisen, Schatten und wählbaren Texturen"
        "Regedit"
        "2012"
        "Regedit"
        ""
        SF-VALUE "Groesse" "600"
        SF-COLOR "Farbe des Planeten" '(10 70 100)
        SF-ADJUSTMENT "Sonneneinstrahlung (Grad)" '(315 0 360 1 10 0 0)
        SF-COLOR "Farbe der Atmosphaere (Alternative: weiss)" '(176 238 255)
    )
    Ich habe derzeit noch Probleme, die Auswahl in einem Pfad zu speichern und nachzuziehen.
    Außerdem muss Schattenkopie als Ebenenmaske für Atmosphaere gesetzt werden ...
    Auch im englischen Teil werden noch viele Fehler sein.
    Über jeden Kommentar freue ich mich.
    Angehängte Dateien Angehängte Dateien
    Geändert von Regedit (18.01.2012 um 16:58 Uhr)

  2. #2
    TP-Junior
    Registriert seit
    Jan 2012
    Beiträge
    7

    Komme nicht weiter

    Hallo User,

    meine Probleme sind trotz Recherche immer noch die selben.
    Kennt wer eine (deutsche) umpfangreiche und aktuelle Skript-Fu Referenz ?
    Eine Englische Version findet ihr unter : http://www.ps.uni-saarland.de/course...efman_toc.html
    Das würde mir schon helfen.
    Geändert von Regedit (22.02.2012 um 19:24 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. wie kann man dyn.text rendern?
    Von limette im Forum Flash & Multimedia
    Antworten: 4
    Letzter Beitrag: 15.05.2006, 18:18
  2. Rendern
    Von Spartacus im Forum Photoshop
    Antworten: 3
    Letzter Beitrag: 20.01.2005, 08:07
  3. Bryce transparent rendern ?
    Von Tagged im Forum Video & Fotografie
    Antworten: 1
    Letzter Beitrag: 14.04.2004, 07:21
  4. [Gimp] Stapelverarbeitung mit Gimp
    Von SirBerberitz im Forum Webdesign allgemein
    Antworten: 3
    Letzter Beitrag: 29.02.2004, 12:46
  5. Verlauf / Übergang rendern ?
    Von lahmer lamer im Forum Photoshop
    Antworten: 2
    Letzter Beitrag: 16.08.2002, 13:51

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

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