POV-Ray : Newsgroups : povray.unix : Re: 3d modeler : Re: 3d modeler Server Time
28 Jul 2024 22:26:56 EDT (-0400)
  Re: 3d modeler  
From: Daniel Matthews
Date: 4 Nov 2001 18:52:28
Message: <2068322.NDX9hSmTKt@3-e.net>
Roz wrote:

> Bas Leerintveld wrote:
> 
>> On Tue, 23 Oct 2001 19:38:43 +0200, Roz wrote:
>> 
>> 
>>>You might want to check out Blender:
>>>
>> 
>> I don't like Blender, the UI is horrible; confusing on purpose, to boost
>> the sale of Blender manuals. :-D
>> 
> 
> 
> Blender does have a challenging UI but some people can do amazing things
> with it (I'm not one of them though ;)  I think once a person got
> familiar with it they'd see that there's actually a consistent
> interface. But it's not easy to get used to Blender!
> 
> 
>> TrueVision perhaps? Try http://truevision.sourceforge.net/
>> If this list of features describes the current state of the project, it's
>> not very useful yet, but the project is certainly more active then giram
>> ( http://www.giram.org ), another modeler for GNOME.
> 
> TrueVision looks interesting. Anything that runs on Linux that supports
> POV looks interesting to me ;)  The material editor in it looks good too!
> 
> Danial Matthews pointed out the following link in an earlier thread in
> response to a linux gui for pov:
> 
> http://www.azweb.de/kpovmodeler/index.html
> 
> Could be worth checking out too!
> 
> -Roz

I have been talking to the K3d people about a POV export option too, but 
they are focused on RIB. There is a rib2pov script written in perl, but is 
is incomplete and old (1994). A revamped version of it  would let you move 
RIB files to POVMAN, or just the geometry to POV 3.5

rib2pov -------------------- cut here, eh? ----------------------->8
#! /usr/um/bin/perl

# RIB2POV
# v.1.0: (c) Jonathan Mayer, 1994 jma### [at] enginumichedu
#
# version 1.0
# Converts Renderman RIB files to POVRAY scene description files.
# Note that this converter isn't terribly flexible, and is really only
# meant to convert RIB files automatically generated by the macintosh
# application SWIVEL 3D.  It ignores anything it doesn't understand.
# I don't know RIB -- I'm making certain assumptions.
#
# Permission to freely distribute and modify is granted by the
# author, provided that all changes are documented and that the
# original credits aren't removed, ok?  Just check with me before
# distributing yer modifications. -jm

$COM = "\/\/";

print "$COM Translated by rib2pov, jma### [at] enginumichedu\n";
print "$COM On ",time,"\n\n";

$StackBreak = "\n**BREAK**\n";  #this is hokey

$curobj = "";
@attrStack = (); # this isn't used
@objStack = ();  # but this is

$srcPoly = 0; # just some bookkeeping
$destTri = 0;

sub POPOBJECT
{
        local ($l);
        while (($l = pop (@objStack)) ne $StackBreak) {
                print $l,"\n";
        }
}

while (<>)
{
        if (/^attribute \"identifier\" \".+\" \"(\S+)\"/) {
                push (@objStack, $curobj);
                push (@objStack, $StackBreak);
                push (@objStack, "}");
                $curobj = $1;
                next;
        }
        next if ($curobj eq "");
        if ((/^polygon ...\[(.*)\]/) ||
            (/^gpolygon \[\d+\] ...\[(.*)\]/))
        {
                # for random polygon A B C D E F...
                # creates triangles: <ABC> <ACD> <ADE> <AEF> ...
                $srcPoly++;
                local (@n) = split (/[ \t\n]+/, $1);
                local (@vertexes) = ();
                ### print "POLY\n";
                while (@n) {
                        $Z = pop (@n);
                        $Y = pop (@n);
                        $X = pop (@n);
                        push (@vertexes, "< $X, $Y, $Z >");
                        ### print "  VERTEX: < $X, $Y, $Z >\n";
                }
                local($C);
                local($A) = pop (@vertexes);
                local($B) = pop (@vertexes);
                while (@vertexes) {
                        ### print " TRIANGLE";
                        $destTri++;
                        $C = pop (@vertexes);
                        # make triangle ABC
                        push (@objStack, "\t}");
                        push (@objStack, "\t\t$C");
                        push (@objStack, "\t\t$B,");
                        push (@objStack, "\t\t$A,");
                        push (@objStack, "\ttriangle {");
                        # set stuff up for next triangle
                        $B = $C;
                }
                ### print "\n";
                next;
        }
        if (/^scale (\S+) (\S+) (\S+)\b/) {
                push (@objStack, "\tscale <$1, $2, $3>");
                next;
        }
        if (/^translate (\S+) (\S+) (\S+)\b/) {
                push (@objStack, "\ttranslate <$1, $2, $3>");
                next;
        }
        if (/^rotate (\S+) (\S+) (\S+) (\S+)\b/) {
                $rX = $1 * $2;
                $rY = $1 * $3;
                $rZ = $1 * $4;
                push (@objStack, "\trotate <$rX, $rY, $rZ>");
        }
        if (/^color \[(\S+) (\S+) (\S+)\]/) {
                push (@objStack, "\tpigment { color red $1 green $1 blue $1 }");
                next;
        }
        if (/^attributeend\b/) {
                push (@objStack, "\#declare $curobj = union {");
                push (@objStack, "\/\/ Object: \"$curobj\" ;)");
                push (@objStack, " ");
                &POPOBJECT;
                $nextobj = pop (@objStack);
                push (@objStack, "\tobject { $curobj }");
                $curobj = $nextobj;
                next;
        }
}

print "\n\n\/\/ THE END. translated by rib2pov, jma### [at] enginumichedu 
;)\n\n";
print STDERR " Translated $srcPoly polygons into $destTri triangles.\n";
exit (0); # gracefully exit stage left.

end of rib2pov ------------- cut here, eh? ----------------------->8


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.