Initial import

This commit is contained in:
chris20 2013-11-06 13:07:19 -05:00
commit 86f4639d37
9553 changed files with 1415983 additions and 0 deletions

661
LICENSE Normal file
View file

@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<http://www.gnu.org/licenses/>.

3163
changes.txt Normal file

File diff suppressed because it is too large Load diff

661
distribution/agpl-3.0.txt Normal file
View file

@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<http://www.gnu.org/licenses/>.

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -0,0 +1,215 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: arrays.inc
// Last updated: May 7 2002
// Description: Array manipulation macros...sorting, resizing, etc.
#ifndef(ARRAYS_INC_TEMP)
#declare ARRAYS_INC_TEMP = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including arrays.inc\n"
#end
// Input: a one dimensional array and a random stream
// Output: a random item from the input array
// Source: variate.inc by Ingo Janssen
#macro Rand_Array_Item(Array, Stream)
#if(dimensions(Array)=1)
Array[floor(rand(Stream)*0.9999999*dimension_size(Array,1))]
#else
#error "The Rand_Array_Item() macro only works for 1D arrays."
#end
#end
#macro Resize_Array(Array, NewSize)
#if(dimensions(Array)=1)
#local NewArray = array[NewSize]
#local C = 0;
#local Max = min(NewSize, dimension_size(Array, 1));
#while (C < Max)
#ifdef (Array[C])
#local NewArray[C] = Array[C];
#end
#local C = C + 1;
#end
#declare Array = NewArray
#else
#error "The Resize_Array() macro only works for 1D arrays."
#end
#end
#macro Reverse_Array(Array)
#if(dimensions(Array)=1)
#local J = 0;
#local N = dimension_size(Array, 1) - 1;
#while(J < N/2)
#local Temp = Array[J];
#local Array[J] = Array[N-J];
#local Array[N-J] = Temp;
#local J = J + 1;
#end
#else
#error "The Reverse_Array() macro only works for 1D arrays."
#end
#end
// #macro Insert_In_Array(Item, DestArray, Index)
// #macro Insert_Array_In_Array(ItemArray, DestArray, Index)
// #macro Append_To_Array(Item, DestArray, Index)
// #macro Append_Array_To_Array(ItemArray, DestArray, Index)
// This macro will compare float values and vector lengths.
// It is intended to be redefined by the user to suit their
// needs, but it should always return true if A is "less than"
// B, otherwise false.
// #macro SortCompare(A, B) (vlength(A) < vlength(B)) #end
// #macro SortCompare(Array, IdxA, IdxB) (vlength(Array[IdxA]) < vlength(Array[IdxB])) #end
#macro Sort_Compare(Array, IdxA, IdxB) (Array[IdxA] < Array[IdxB]) #end
// This macro swaps the data in two locations. The user can
// redefine it, for example to swap additional data along a
// second dimension, keeping columns of data together.
#macro Sort_Swap_Data(Array, IdxA, IdxB)
#local Tmp = Array[IdxA];
#declare Array[IdxA] = Array[IdxB];
#declare Array[IdxB] = Tmp;
#end
// Sort macros slightly modified from QuickSort macros by Juha Nieminen
#macro Sort_Array(Array)
Sort_Partial_Array(Array, 0, dimension_size(Array, 1)-1)
#end
#macro Sort_Partial_Array(Array, FirstInd, LastInd)
ARRAYS_HybridQuickSortStep(Array, FirstInd, LastInd)
ARRAYS_InsertionSort(Array, FirstInd, LastInd)
#end
#declare ARRAYS_QuickSortSeed = seed(0);
#macro ARRAYS_HybridQuickSortStep(Array, FirstInd, LastInd)
#local FInd = FirstInd;
#while(FInd < LastInd-10)
#local RInd = FInd + rand(ARRAYS_QuickSortSeed)*(LastInd - FInd);
Sort_Swap_Data(Array, FInd, RInd)
#local I = FInd-1;
#local J = LastInd+1;
#local Mid = -1;
#while(Mid < 0)
#local J = J-1;
#while(Sort_Compare(Array, FInd, J)) #local J = J-1; #end
#local I = I+1;
#while(Sort_Compare(Array, I, FInd)) #local I = I+1; #end
#if(I < J)
Sort_Swap_Data(Array, I, J)
#else
#local Mid = J;
#end
#end
ARRAYS_HybridQuickSortStep(Array, FInd, Mid)
#local FInd = Mid+1;
#end
#end
#macro ARRAYS_InsertionSort(Array, FirstInd, LastInd)
#local Ind1 = FirstInd+1;
#while(Ind1 <= LastInd)
#local Ind2 = Ind1;
#while(Ind2 > FirstInd)
#local NextInd2 = Ind2-1;
#if(Sort_Compare(Array, Ind2, NextInd2))
Sort_Swap_Data(Array, Ind2, NextInd2)
#local Ind2 = NextInd2;
#else
#local Ind2 = 0;
#end
#end
#local Ind1 = Ind1+1;
#end
#end
#macro ARRAYS_WriteDF3(Array, FileName, BitDepth)
#switch (BitDepth)
#case (8)
#macro ARRAYS_Temp_WriteDF3(ArrayItem)
#ifdef (ArrayItem)
#write(ARRAYS_Temp_File, uint8 ArrayItem * 255)
#else
#write(ARRAYS_Temp_File, uint8 0)
#end
#end
#break
#case (16)
#macro ARRAYS_Temp_WriteDF3(ArrayItem)
#ifdef (ArrayItem)
#write(ARRAYS_Temp_File, uint16be ArrayItem * 65535)
#else
#write(ARRAYS_Temp_File, uint16be 0)
#end
#end
#break
#else
#error "ARRAYS_WriteDF3: bit depth not supported\n"
#end
#switch (dimensions(Array))
#case (1)
#local SizeX = dimension_size(Array,1);
#local SizeY = 1;
#local SizeZ = 1;
#macro ARRAYS_Temp(Arr,IX,IY,IZ) Arr[IX] #end
#break
#case (2)
#local SizeX = dimension_size(Array,1);
#local SizeY = dimension_size(Array,2);
#local SizeZ = 1;
#macro ARRAYS_Temp(Arr,IX,IY,IZ) Arr[IX][IY] #end
#break
#case (3)
#local SizeX = dimension_size(Array,1);
#local SizeY = dimension_size(Array,2);
#local SizeZ = dimension_size(Array,3);
#macro ARRAYS_Temp(Arr,IX,IY,IZ) Arr[IX][IY][IZ] #end
#break
#else
#error "ARRAYS_WriteDF3: number of dimensions not supported\n"
#end
#if ((SizeX > 65535) | (SizeY > 65535) | (SizeZ > 65535))
#error "ARRAYS_WriteDF3: dimension size not supported\n"
#end
#fopen ARRAYS_Temp_File FileName write
#write (ARRAYS_Temp_File, uint16be <SizeX,SizeY,SizeZ>)
#local IndZ = 0;
#while (IndZ < SizeZ)
#local IndY = 0;
#while (IndY < SizeY)
#local IndX = 0;
#while (IndX < SizeX)
ARRAYS_Temp_WriteDF3(ARRAYS_Temp(Array,IndX,IndY,IndZ))
#local IndX = IndX + 1;
#end
#local IndY = IndY + 1;
#end
#local IndZ = IndZ + 1;
#end
#undef ARRAYS_Temp
#undef ARRAYS_Temp_WriteDF3
#fclose ARRAYS_Temp_File
#end
#version ARRAYS_INC_TEMP;
#end

View file

@ -0,0 +1,267 @@
#declare Ash_Inc_Temp=version;
/*
Persistence of Vision Raytracer Version 3.1
Ash wood color_map
*/
#declare M_Ash =
color_map {
[0.000000 rgb <0.298039, 0.188235, 0.125490>]
[0.003922 rgb <0.313726, 0.203922, 0.141176>]
[0.007843 rgb <0.313726, 0.203922, 0.172549>]
[0.011765 rgb <0.329412, 0.188235, 0.109804>]
[0.015686 rgb <0.329412, 0.219608, 0.125490>]
[0.019608 rgb <0.329412, 0.219608, 0.156863>]
[0.023529 rgb <0.329412, 0.235294, 0.172549>]
[0.027451 rgb <0.329412, 0.250980, 0.125490>]
[0.031373 rgb <0.345098, 0.203922, 0.141176>]
[0.035294 rgb <0.345098, 0.219608, 0.109804>]
[0.039216 rgb <0.345098, 0.219608, 0.188235>]
[0.043137 rgb <0.345098, 0.235294, 0.141176>]
[0.047059 rgb <0.360784, 0.203922, 0.109804>]
[0.050980 rgb <0.360784, 0.219608, 0.156863>]
[0.054902 rgb <0.360784, 0.235294, 0.109804>]
[0.058824 rgb <0.360784, 0.235294, 0.203922>]
[0.062745 rgb <0.360784, 0.250980, 0.156863>]
[0.066667 rgb <0.376471, 0.219608, 0.094118>]
[0.070588 rgb <0.376471, 0.219608, 0.125490>]
[0.074510 rgb <0.376471, 0.235294, 0.141176>]
[0.078431 rgb <0.376471, 0.235294, 0.172549>]
[0.082353 rgb <0.376471, 0.250980, 0.125490>]
[0.086275 rgb <0.376471, 0.266667, 0.172549>]
[0.090196 rgb <0.376471, 0.266667, 0.203922>]
[0.094118 rgb <0.392157, 0.203922, 0.109804>]
[0.098039 rgb <0.392157, 0.219608, 0.156863>]
[0.101961 rgb <0.392157, 0.235294, 0.109804>]
[0.105882 rgb <0.392157, 0.250980, 0.156863>]
[0.109804 rgb <0.392157, 0.250980, 0.188235>]
[0.113725 rgb <0.392157, 0.250980, 0.219608>]
[0.117647 rgb <0.392157, 0.266667, 0.141176>]
[0.121569 rgb <0.392157, 0.282353, 0.172549>]
[0.125490 rgb <0.392157, 0.282353, 0.219608>]
[0.129412 rgb <0.392157, 0.298039, 0.188235>]
[0.133333 rgb <0.407843, 0.219608, 0.094118>]
[0.137255 rgb <0.407843, 0.219608, 0.125490>]
[0.141176 rgb <0.407843, 0.235294, 0.172549>]
[0.145098 rgb <0.407843, 0.250980, 0.125490>]
[0.149020 rgb <0.407843, 0.266667, 0.172549>]
[0.152941 rgb <0.407843, 0.266667, 0.203922>]
[0.156863 rgb <0.407843, 0.298039, 0.235294>]
[0.160784 rgb <0.407843, 0.313726, 0.266667>]
[0.164706 rgb <0.423529, 0.235294, 0.109804>]
[0.168627 rgb <0.423529, 0.235294, 0.141176>]
[0.172549 rgb <0.423529, 0.250980, 0.188235>]
[0.176471 rgb <0.423529, 0.266667, 0.109804>]
[0.180392 rgb <0.423529, 0.266667, 0.141176>]
[0.184314 rgb <0.423529, 0.282353, 0.188235>]
[0.188235 rgb <0.423529, 0.282353, 0.219608>]
[0.192157 rgb <0.423529, 0.298039, 0.250980>]
[0.196078 rgb <0.423529, 0.313726, 0.219608>]
[0.200000 rgb <0.423529, 0.313726, 0.282353>]
[0.203922 rgb <0.423529, 0.345098, 0.266667>]
[0.207843 rgb <0.439216, 0.219608, 0.125490>]
[0.211765 rgb <0.439216, 0.250980, 0.094118>]
[0.215686 rgb <0.439216, 0.250980, 0.125490>]
[0.219608 rgb <0.439216, 0.250980, 0.156863>]
[0.223529 rgb <0.439216, 0.266667, 0.203922>]
[0.227451 rgb <0.439216, 0.282353, 0.156863>]
[0.231373 rgb <0.439216, 0.298039, 0.125490>]
[0.235294 rgb <0.439216, 0.298039, 0.203922>]
[0.239216 rgb <0.439216, 0.298039, 0.235294>]
[0.243137 rgb <0.439216, 0.313726, 0.188235>]
[0.247059 rgb <0.439216, 0.313726, 0.266667>]
[0.250980 rgb <0.439216, 0.329412, 0.298039>]
[0.254902 rgb <0.454902, 0.235294, 0.141176>]
[0.258824 rgb <0.454902, 0.266667, 0.109804>]
[0.262745 rgb <0.454902, 0.266667, 0.141176>]
[0.266667 rgb <0.454902, 0.266667, 0.172549>]
[0.270588 rgb <0.454902, 0.282353, 0.219608>]
[0.274510 rgb <0.454902, 0.298039, 0.141176>]
[0.278431 rgb <0.454902, 0.298039, 0.172549>]
[0.282353 rgb <0.454902, 0.298039, 0.250980>]
[0.286275 rgb <0.454902, 0.313726, 0.219608>]
[0.290196 rgb <0.454902, 0.313726, 0.282353>]
[0.294118 rgb <0.454902, 0.329412, 0.250980>]
[0.298039 rgb <0.454902, 0.329412, 0.313726>]
[0.301961 rgb <0.454902, 0.345098, 0.282353>]
[0.305882 rgb <0.454902, 0.360784, 0.329412>]
[0.309804 rgb <0.470588, 0.235294, 0.109804>]
[0.313726 rgb <0.470588, 0.250980, 0.125490>]
[0.317647 rgb <0.470588, 0.282353, 0.125490>]
[0.321569 rgb <0.470588, 0.282353, 0.156863>]
[0.325490 rgb <0.470588, 0.282353, 0.188235>]
[0.329412 rgb <0.470588, 0.298039, 0.235294>]
[0.333333 rgb <0.470588, 0.313726, 0.188235>]
[0.337255 rgb <0.470588, 0.313726, 0.266667>]
[0.341176 rgb <0.470588, 0.329412, 0.298039>]
[0.345098 rgb <0.470588, 0.345098, 0.219608>]
[0.349020 rgb <0.470588, 0.345098, 0.250980>]
[0.352941 rgb <0.470588, 0.345098, 0.313726>]
[0.356863 rgb <0.470588, 0.360784, 0.266667>]
[0.360784 rgb <0.470588, 0.360784, 0.298039>]
[0.364706 rgb <0.486275, 0.250980, 0.156863>]
[0.368627 rgb <0.486275, 0.266667, 0.109804>]
[0.372549 rgb <0.486275, 0.266667, 0.172549>]
[0.376471 rgb <0.486275, 0.298039, 0.141176>]
[0.380392 rgb <0.486275, 0.298039, 0.172549>]
[0.384314 rgb <0.486275, 0.298039, 0.203922>]
[0.388235 rgb <0.486275, 0.329412, 0.172549>]
[0.392157 rgb <0.486275, 0.329412, 0.203922>]
[0.396078 rgb <0.486275, 0.329412, 0.235294>]
[0.400000 rgb <0.486275, 0.329412, 0.266667>]
[0.403922 rgb <0.486275, 0.345098, 0.282353>]
[0.407843 rgb <0.486275, 0.360784, 0.235294>]
[0.411765 rgb <0.486275, 0.376471, 0.282353>]
[0.415686 rgb <0.486275, 0.376471, 0.313726>]
[0.419608 rgb <0.501961, 0.250980, 0.094118>]
[0.423529 rgb <0.501961, 0.266667, 0.141176>]
[0.427451 rgb <0.501961, 0.282353, 0.125490>]
[0.431373 rgb <0.501961, 0.282353, 0.172549>]
[0.435294 rgb <0.501961, 0.313726, 0.156863>]
[0.439216 rgb <0.501961, 0.313726, 0.188235>]
[0.443137 rgb <0.501961, 0.313726, 0.219608>]
[0.447059 rgb <0.501961, 0.313726, 0.250980>]
[0.450980 rgb <0.501961, 0.345098, 0.219608>]
[0.454902 rgb <0.501961, 0.345098, 0.250980>]
[0.458824 rgb <0.501961, 0.360784, 0.266667>]
[0.462745 rgb <0.501961, 0.360784, 0.298039>]
[0.466667 rgb <0.501961, 0.376471, 0.250980>]
[0.470588 rgb <0.501961, 0.392157, 0.329412>]
[0.474510 rgb <0.517647, 0.282353, 0.156863>]
[0.478431 rgb <0.517647, 0.298039, 0.141176>]
[0.482353 rgb <0.517647, 0.298039, 0.203922>]
[0.486275 rgb <0.517647, 0.329412, 0.172549>]
[0.490196 rgb <0.517647, 0.329412, 0.203922>]
[0.494118 rgb <0.517647, 0.329412, 0.235294>]
[0.498039 rgb <0.517647, 0.345098, 0.282353>]
[0.501961 rgb <0.517647, 0.360784, 0.203922>]
[0.505882 rgb <0.517647, 0.360784, 0.235294>]
[0.509804 rgb <0.517647, 0.376471, 0.282353>]
[0.513726 rgb <0.517647, 0.376471, 0.313726>]
[0.517647 rgb <0.517647, 0.407843, 0.313726>]
[0.521569 rgb <0.517647, 0.407843, 0.345098>]
[0.525490 rgb <0.533333, 0.282353, 0.125490>]
[0.529412 rgb <0.533333, 0.298039, 0.172549>]
[0.533333 rgb <0.533333, 0.313726, 0.141176>]
[0.537255 rgb <0.533333, 0.313726, 0.219608>]
[0.541176 rgb <0.533333, 0.345098, 0.156863>]
[0.545098 rgb <0.533333, 0.345098, 0.188235>]
[0.549020 rgb <0.533333, 0.345098, 0.219608>]
[0.552941 rgb <0.533333, 0.345098, 0.250980>]
[0.556863 rgb <0.533333, 0.360784, 0.298039>]
[0.560784 rgb <0.533333, 0.376471, 0.250980>]
[0.564706 rgb <0.533333, 0.392157, 0.298039>]
[0.568627 rgb <0.533333, 0.392157, 0.329412>]
[0.572549 rgb <0.549020, 0.313726, 0.188235>]
[0.576471 rgb <0.549020, 0.329412, 0.235294>]
[0.580392 rgb <0.549020, 0.360784, 0.172549>]
[0.584314 rgb <0.549020, 0.360784, 0.203922>]
[0.588235 rgb <0.549020, 0.360784, 0.235294>]
[0.592157 rgb <0.549020, 0.360784, 0.266667>]
[0.596078 rgb <0.549020, 0.376471, 0.313726>]
[0.600000 rgb <0.549020, 0.392157, 0.235294>]
[0.603922 rgb <0.549020, 0.392157, 0.266667>]
[0.607843 rgb <0.549020, 0.407843, 0.313726>]
[0.611765 rgb <0.549020, 0.407843, 0.345098>]
[0.615686 rgb <0.564706, 0.282353, 0.125490>]
[0.619608 rgb <0.564706, 0.313726, 0.125490>]
[0.623529 rgb <0.564706, 0.313726, 0.156863>]
[0.627451 rgb <0.564706, 0.329412, 0.203922>]
[0.631373 rgb <0.564706, 0.345098, 0.141176>]
[0.635294 rgb <0.564706, 0.345098, 0.250980>]
[0.639216 rgb <0.564706, 0.376471, 0.219608>]
[0.643137 rgb <0.564706, 0.376471, 0.250980>]
[0.647059 rgb <0.564706, 0.376471, 0.282353>]
[0.650980 rgb <0.564706, 0.392157, 0.329412>]
[0.654902 rgb <0.564706, 0.407843, 0.250980>]
[0.658824 rgb <0.564706, 0.407843, 0.282353>]
[0.662745 rgb <0.564706, 0.423529, 0.329412>]
[0.666667 rgb <0.564706, 0.423529, 0.360784>]
[0.670588 rgb <0.580392, 0.329412, 0.172549>]
[0.674510 rgb <0.580392, 0.345098, 0.219608>]
[0.678431 rgb <0.580392, 0.360784, 0.172549>]
[0.682353 rgb <0.580392, 0.360784, 0.266667>]
[0.686275 rgb <0.580392, 0.392157, 0.235294>]
[0.690196 rgb <0.580392, 0.392157, 0.266667>]
[0.694118 rgb <0.580392, 0.392157, 0.298039>]
[0.698039 rgb <0.580392, 0.407843, 0.345098>]
[0.701961 rgb <0.580392, 0.423529, 0.266667>]
[0.705882 rgb <0.580392, 0.423529, 0.298039>]
[0.709804 rgb <0.580392, 0.439216, 0.345098>]
[0.713726 rgb <0.580392, 0.454902, 0.392157>]
[0.717647 rgb <0.596078, 0.345098, 0.156863>]
[0.721569 rgb <0.596078, 0.345098, 0.188235>]
[0.725490 rgb <0.596078, 0.360784, 0.235294>]
[0.729412 rgb <0.596078, 0.376471, 0.188235>]
[0.733333 rgb <0.596078, 0.407843, 0.250980>]
[0.737255 rgb <0.596078, 0.407843, 0.282353>]
[0.741176 rgb <0.596078, 0.407843, 0.313726>]
[0.745098 rgb <0.596078, 0.423529, 0.360784>]
[0.749020 rgb <0.596078, 0.439216, 0.313726>]
[0.752941 rgb <0.596078, 0.454902, 0.360784>]
[0.756863 rgb <0.611765, 0.360784, 0.172549>]
[0.760784 rgb <0.611765, 0.360784, 0.203922>]
[0.764706 rgb <0.611765, 0.376471, 0.250980>]
[0.768627 rgb <0.611765, 0.392157, 0.203922>]
[0.772549 rgb <0.611765, 0.423529, 0.266667>]
[0.776471 rgb <0.611765, 0.423529, 0.298039>]
[0.780392 rgb <0.611765, 0.423529, 0.329412>]
[0.784314 rgb <0.611765, 0.439216, 0.376471>]
[0.788235 rgb <0.611765, 0.454902, 0.298039>]
[0.792157 rgb <0.611765, 0.454902, 0.329412>]
[0.796078 rgb <0.611765, 0.470588, 0.376471>]
[0.800000 rgb <0.627451, 0.376471, 0.188235>]
[0.803922 rgb <0.627451, 0.376471, 0.219608>]
[0.807843 rgb <0.627451, 0.392157, 0.266667>]
[0.811765 rgb <0.627451, 0.407843, 0.219608>]
[0.815686 rgb <0.627451, 0.439216, 0.235294>]
[0.819608 rgb <0.627451, 0.439216, 0.282353>]
[0.823529 rgb <0.627451, 0.439216, 0.313726>]
[0.827451 rgb <0.627451, 0.439216, 0.345098>]
[0.831373 rgb <0.627451, 0.470588, 0.345098>]
[0.835294 rgb <0.627451, 0.486275, 0.392157>]
[0.839216 rgb <0.643137, 0.392157, 0.203922>]
[0.843137 rgb <0.643137, 0.392157, 0.235294>]
[0.847059 rgb <0.643137, 0.407843, 0.282353>]
[0.850980 rgb <0.643137, 0.423529, 0.250980>]
[0.854902 rgb <0.643137, 0.423529, 0.329412>]
[0.858824 rgb <0.643137, 0.454902, 0.298039>]
[0.862745 rgb <0.643137, 0.454902, 0.329412>]
[0.866667 rgb <0.643137, 0.454902, 0.360784>]
[0.870588 rgb <0.643137, 0.486275, 0.360784>]
[0.874510 rgb <0.658824, 0.407843, 0.219608>]
[0.878431 rgb <0.658824, 0.423529, 0.298039>]
[0.882353 rgb <0.658824, 0.439216, 0.266667>]
[0.886275 rgb <0.658824, 0.470588, 0.282353>]
[0.890196 rgb <0.658824, 0.470588, 0.313726>]
[0.894118 rgb <0.658824, 0.470588, 0.345098>]
[0.898039 rgb <0.658824, 0.470588, 0.376471>]
[0.901961 rgb <0.658824, 0.501961, 0.376471>]
[0.905882 rgb <0.674510, 0.423529, 0.235294>]
[0.909804 rgb <0.674510, 0.454902, 0.250980>]
[0.913725 rgb <0.674510, 0.454902, 0.298039>]
[0.917647 rgb <0.674510, 0.454902, 0.329412>]
[0.921569 rgb <0.674510, 0.486275, 0.298039>]
[0.925490 rgb <0.674510, 0.486275, 0.329412>]
[0.929412 rgb <0.674510, 0.486275, 0.360784>]
[0.933333 rgb <0.674510, 0.486275, 0.392157>]
[0.937255 rgb <0.674510, 0.517647, 0.392157>]
[0.941176 rgb <0.690196, 0.439216, 0.266667>]
[0.945098 rgb <0.690196, 0.470588, 0.266667>]
[0.949020 rgb <0.690196, 0.470588, 0.313726>]
[0.952941 rgb <0.690196, 0.470588, 0.345098>]
[0.956863 rgb <0.690196, 0.501961, 0.345098>]
[0.960784 rgb <0.690196, 0.501961, 0.376471>]
[0.964706 rgb <0.690196, 0.533333, 0.407843>]
[0.968627 rgb <0.705882, 0.454902, 0.250980>]
[0.972549 rgb <0.705882, 0.454902, 0.282353>]
[0.976471 rgb <0.705882, 0.486275, 0.329412>]
[0.980392 rgb <0.705882, 0.517647, 0.360784>]
[0.984314 rgb <0.705882, 0.517647, 0.392157>]
[0.988235 rgb <0.721569, 0.486275, 0.282353>]
[0.992157 rgb <0.721569, 0.549020, 0.407843>]
[0.996078 rgb <0.737255, 0.501961, 0.313726>]
}
#version Ash_Inc_Temp;

View file

@ -0,0 +1,266 @@
#declare Benediti_Inc_Temp=version;
/*
Persistence of Vision Raytracer Version 3.1
Benediti marble color_map
*/
#declare M_Benediti =
color_map {
[0.000000 rgb <0.878431, 0.847059, 0.690196>]
[0.003922 rgb <0.878431, 0.815686, 0.737255>]
[0.007843 rgb <0.878431, 0.815686, 0.627451>]
[0.011765 rgb <0.862745, 0.768627, 0.674510>]
[0.015686 rgb <0.815686, 0.768627, 0.705882>]
[0.019608 rgb <0.815686, 0.768627, 0.658824>]
[0.023529 rgb <0.815686, 0.752941, 0.627451>]
[0.027451 rgb <0.800000, 0.752941, 0.533333>]
[0.031373 rgb <0.800000, 0.737255, 0.580392>]
[0.035294 rgb <0.784314, 0.784314, 0.580392>]
[0.039216 rgb <0.784314, 0.737255, 0.611765>]
[0.043137 rgb <0.784314, 0.721569, 0.643137>]
[0.047059 rgb <0.784314, 0.705882, 0.517647>]
[0.050980 rgb <0.768627, 0.737255, 0.674510>]
[0.054902 rgb <0.768627, 0.705882, 0.596078>]
[0.058824 rgb <0.752941, 0.721569, 0.627451>]
[0.062745 rgb <0.752941, 0.705882, 0.658824>]
[0.066667 rgb <0.752941, 0.690196, 0.549020>]
[0.070588 rgb <0.737255, 0.690196, 0.454902>]
[0.074510 rgb <0.737255, 0.658824, 0.580392>]
[0.078431 rgb <0.721569, 0.690196, 0.611765>]
[0.082353 rgb <0.721569, 0.658824, 0.611765>]
[0.086275 rgb <0.721569, 0.658824, 0.533333>]
[0.090196 rgb <0.721569, 0.658824, 0.501961>]
[0.094118 rgb <0.721569, 0.643137, 0.705882>]
[0.098039 rgb <0.721569, 0.627451, 0.329412>]
[0.101961 rgb <0.705882, 0.674510, 0.643137>]
[0.105882 rgb <0.705882, 0.643137, 0.470588>]
[0.109804 rgb <0.705882, 0.627451, 0.533333>]
[0.113725 rgb <0.705882, 0.580392, 0.313726>]
[0.117647 rgb <0.690196, 0.658824, 0.580392>]
[0.121569 rgb <0.690196, 0.658824, 0.470588>]
[0.125490 rgb <0.690196, 0.643137, 0.423529>]
[0.129412 rgb <0.690196, 0.627451, 0.580392>]
[0.133333 rgb <0.690196, 0.611765, 0.501961>]
[0.137255 rgb <0.674510, 0.643137, 0.611765>]
[0.141176 rgb <0.674510, 0.643137, 0.517647>]
[0.145098 rgb <0.674510, 0.627451, 0.564706>]
[0.149020 rgb <0.674510, 0.611765, 0.627451>]
[0.152941 rgb <0.674510, 0.611765, 0.454902>]
[0.156863 rgb <0.658824, 0.658824, 0.690196>]
[0.160784 rgb <0.658824, 0.627451, 0.454902>]
[0.164706 rgb <0.658824, 0.596078, 0.533333>]
[0.168627 rgb <0.658824, 0.596078, 0.423529>]
[0.172549 rgb <0.658824, 0.580392, 0.470588>]
[0.176471 rgb <0.658824, 0.533333, 0.298039>]
[0.180392 rgb <0.643137, 0.658824, 0.564706>]
[0.184314 rgb <0.643137, 0.611765, 0.580392>]
[0.188235 rgb <0.643137, 0.611765, 0.501961>]
[0.192157 rgb <0.643137, 0.580392, 0.627451>]
[0.196078 rgb <0.643137, 0.564706, 0.423529>]
[0.200000 rgb <0.627451, 0.596078, 0.454902>]
[0.203922 rgb <0.627451, 0.580392, 0.549020>]
[0.207843 rgb <0.627451, 0.564706, 0.658824>]
[0.211765 rgb <0.627451, 0.564706, 0.501961>]
[0.215686 rgb <0.627451, 0.564706, 0.454902>]
[0.219608 rgb <0.627451, 0.549020, 0.392157>]
[0.223529 rgb <0.611765, 0.596078, 0.533333>]
[0.227451 rgb <0.611765, 0.596078, 0.407843>]
[0.231373 rgb <0.611765, 0.564706, 0.596078>]
[0.235294 rgb <0.611765, 0.549020, 0.423529>]
[0.239216 rgb <0.611765, 0.533333, 0.501961>]
[0.243137 rgb <0.611765, 0.501961, 0.392157>]
[0.247059 rgb <0.596078, 0.580392, 0.486275>]
[0.250980 rgb <0.596078, 0.564706, 0.533333>]
[0.254902 rgb <0.596078, 0.564706, 0.376471>]
[0.258824 rgb <0.596078, 0.517647, 0.454902>]
[0.262745 rgb <0.580392, 0.533333, 0.580392>]
[0.266667 rgb <0.580392, 0.533333, 0.392157>]
[0.270588 rgb <0.580392, 0.517647, 0.360784>]
[0.274510 rgb <0.580392, 0.501961, 0.423529>]
[0.278431 rgb <0.564706, 0.564706, 0.423529>]
[0.282353 rgb <0.564706, 0.564706, 0.345098>]
[0.286275 rgb <0.564706, 0.549020, 0.454902>]
[0.290196 rgb <0.564706, 0.533333, 0.501961>]
[0.294118 rgb <0.564706, 0.517647, 0.533333>]
[0.298039 rgb <0.564706, 0.501961, 0.501961>]
[0.301961 rgb <0.564706, 0.486275, 0.360784>]
[0.305882 rgb <0.549020, 0.517647, 0.439216>]
[0.309804 rgb <0.549020, 0.517647, 0.360784>]
[0.313726 rgb <0.549020, 0.486275, 0.564706>]
[0.317647 rgb <0.549020, 0.486275, 0.407843>]
[0.321569 rgb <0.549020, 0.486275, 0.329412>]
[0.325490 rgb <0.549020, 0.470588, 0.454902>]
[0.329412 rgb <0.533333, 0.517647, 0.517647>]
[0.333333 rgb <0.533333, 0.517647, 0.470588>]
[0.337255 rgb <0.533333, 0.486275, 0.486275>]
[0.341176 rgb <0.533333, 0.454902, 0.360784>]
[0.345098 rgb <0.533333, 0.454902, 0.313726>]
[0.349020 rgb <0.517647, 0.517647, 0.392157>]
[0.352941 rgb <0.517647, 0.517647, 0.329412>]
[0.356863 rgb <0.517647, 0.486275, 0.454902>]
[0.360784 rgb <0.517647, 0.486275, 0.298039>]
[0.364706 rgb <0.517647, 0.454902, 0.470588>]
[0.368627 rgb <0.517647, 0.439216, 0.407843>]
[0.372549 rgb <0.517647, 0.423529, 0.360784>]
[0.376471 rgb <0.501961, 0.486275, 0.360784>]
[0.380392 rgb <0.501961, 0.470588, 0.533333>]
[0.384314 rgb <0.501961, 0.470588, 0.407843>]
[0.388235 rgb <0.501961, 0.454902, 0.329412>]
[0.392157 rgb <0.501961, 0.439216, 0.282353>]
[0.396078 rgb <0.501961, 0.423529, 0.329412>]
[0.400000 rgb <0.486275, 0.470588, 0.470588>]
[0.403922 rgb <0.486275, 0.454902, 0.439216>]
[0.407843 rgb <0.486275, 0.454902, 0.376471>]
[0.411765 rgb <0.486275, 0.439216, 0.486275>]
[0.415686 rgb <0.486275, 0.439216, 0.407843>]
[0.419608 rgb <0.486275, 0.423529, 0.423529>]
[0.423529 rgb <0.486275, 0.423529, 0.345098>]
[0.427451 rgb <0.470588, 0.501961, 0.407843>]
[0.431373 rgb <0.470588, 0.470588, 0.376471>]
[0.435294 rgb <0.470588, 0.454902, 0.298039>]
[0.439216 rgb <0.470588, 0.439216, 0.250980>]
[0.443137 rgb <0.470588, 0.423529, 0.282353>]
[0.447059 rgb <0.470588, 0.407843, 0.470588>]
[0.450980 rgb <0.470588, 0.407843, 0.392157>]
[0.454902 rgb <0.470588, 0.407843, 0.282353>]
[0.458824 rgb <0.470588, 0.392157, 0.250980>]
[0.462745 rgb <0.454902, 0.454902, 0.439216>]
[0.466667 rgb <0.454902, 0.454902, 0.407843>]
[0.470588 rgb <0.454902, 0.454902, 0.376471>]
[0.474510 rgb <0.454902, 0.454902, 0.345098>]
[0.478431 rgb <0.454902, 0.423529, 0.439216>]
[0.482353 rgb <0.454902, 0.423529, 0.376471>]
[0.486275 rgb <0.454902, 0.423529, 0.313726>]
[0.490196 rgb <0.454902, 0.407843, 0.407843>]
[0.494118 rgb <0.454902, 0.407843, 0.345098>]
[0.498039 rgb <0.454902, 0.392157, 0.454902>]
[0.501961 rgb <0.454902, 0.392157, 0.376471>]
[0.505882 rgb <0.454902, 0.392157, 0.345098>]
[0.509804 rgb <0.454902, 0.392157, 0.298039>]
[0.513726 rgb <0.439216, 0.486275, 0.376471>]
[0.517647 rgb <0.439216, 0.439216, 0.313726>]
[0.521569 rgb <0.439216, 0.423529, 0.486275>]
[0.525490 rgb <0.439216, 0.423529, 0.282353>]
[0.529412 rgb <0.439216, 0.392157, 0.423529>]
[0.533333 rgb <0.439216, 0.392157, 0.266667>]
[0.537255 rgb <0.439216, 0.376471, 0.345098>]
[0.541176 rgb <0.423529, 0.439216, 0.360784>]
[0.545098 rgb <0.423529, 0.423529, 0.392157>]
[0.549020 rgb <0.423529, 0.407843, 0.376471>]
[0.552941 rgb <0.423529, 0.407843, 0.329412>]
[0.556863 rgb <0.423529, 0.376471, 0.423529>]
[0.560784 rgb <0.423529, 0.376471, 0.392157>]
[0.564706 rgb <0.423529, 0.376471, 0.313726>]
[0.568627 rgb <0.423529, 0.360784, 0.266667>]
[0.572549 rgb <0.423529, 0.360784, 0.235294>]
[0.576471 rgb <0.423529, 0.360784, 0.188235>]
[0.580392 rgb <0.407843, 0.439216, 0.313726>]
[0.584314 rgb <0.407843, 0.439216, 0.282353>]
[0.588235 rgb <0.407843, 0.423529, 0.235294>]
[0.592157 rgb <0.407843, 0.407843, 0.298039>]
[0.596078 rgb <0.407843, 0.376471, 0.250980>]
[0.600000 rgb <0.407843, 0.360784, 0.360784>]
[0.603922 rgb <0.407843, 0.345098, 0.439216>]
[0.607843 rgb <0.407843, 0.345098, 0.392157>]
[0.611765 rgb <0.407843, 0.345098, 0.360784>]
[0.615686 rgb <0.407843, 0.345098, 0.298039>]
[0.619608 rgb <0.392157, 0.423529, 0.313726>]
[0.623529 rgb <0.392157, 0.392157, 0.549020>]
[0.627451 rgb <0.392157, 0.392157, 0.360784>]
[0.631373 rgb <0.392157, 0.392157, 0.329412>]
[0.635294 rgb <0.392157, 0.392157, 0.266667>]
[0.639216 rgb <0.392157, 0.376471, 0.392157>]
[0.643137 rgb <0.392157, 0.376471, 0.298039>]
[0.647059 rgb <0.392157, 0.360784, 0.219608>]
[0.650980 rgb <0.392157, 0.345098, 0.266667>]
[0.654902 rgb <0.392157, 0.329412, 0.235294>]
[0.658824 rgb <0.376471, 0.360784, 0.345098>]
[0.662745 rgb <0.376471, 0.360784, 0.235294>]
[0.666667 rgb <0.376471, 0.345098, 0.329412>]
[0.670588 rgb <0.376471, 0.329412, 0.376471>]
[0.674510 rgb <0.376471, 0.329412, 0.172549>]
[0.678431 rgb <0.376471, 0.313726, 0.266667>]
[0.682353 rgb <0.360784, 0.376471, 0.564706>]
[0.686275 rgb <0.360784, 0.376471, 0.454902>]
[0.690196 rgb <0.360784, 0.360784, 0.329412>]
[0.694118 rgb <0.360784, 0.360784, 0.282353>]
[0.698039 rgb <0.360784, 0.329412, 0.298039>]
[0.701961 rgb <0.360784, 0.329412, 0.266667>]
[0.705882 rgb <0.360784, 0.329412, 0.219608>]
[0.709804 rgb <0.360784, 0.313726, 0.345098>]
[0.713726 rgb <0.360784, 0.313726, 0.298039>]
[0.717647 rgb <0.360784, 0.313726, 0.219608>]
[0.721569 rgb <0.345098, 0.376471, 0.549020>]
[0.725490 rgb <0.345098, 0.360784, 0.250980>]
[0.729412 rgb <0.345098, 0.345098, 0.360784>]
[0.733333 rgb <0.345098, 0.345098, 0.235294>]
[0.737255 rgb <0.345098, 0.329412, 0.313726>]
[0.741176 rgb <0.345098, 0.313726, 0.392157>]
[0.745098 rgb <0.345098, 0.313726, 0.345098>]
[0.749020 rgb <0.345098, 0.313726, 0.329412>]
[0.752941 rgb <0.345098, 0.313726, 0.235294>]
[0.756863 rgb <0.345098, 0.313726, 0.188235>]
[0.760784 rgb <0.345098, 0.298039, 0.298039>]
[0.764706 rgb <0.329412, 0.329412, 0.282353>]
[0.768627 rgb <0.329412, 0.329412, 0.203922>]
[0.772549 rgb <0.329412, 0.313726, 0.250980>]
[0.776471 rgb <0.329412, 0.282353, 0.360784>]
[0.780392 rgb <0.329412, 0.282353, 0.329412>]
[0.784314 rgb <0.329412, 0.282353, 0.266667>]
[0.788235 rgb <0.313726, 0.329412, 0.235294>]
[0.792157 rgb <0.313726, 0.298039, 0.298039>]
[0.796078 rgb <0.313726, 0.282353, 0.203922>]
[0.800000 rgb <0.313726, 0.266667, 0.376471>]
[0.803922 rgb <0.313726, 0.266667, 0.235294>]
[0.807843 rgb <0.298039, 0.313726, 0.266667>]
[0.811765 rgb <0.298039, 0.298039, 0.235294>]
[0.815686 rgb <0.298039, 0.298039, 0.203922>]
[0.819608 rgb <0.298039, 0.282353, 0.298039>]
[0.823529 rgb <0.298039, 0.282353, 0.250980>]
[0.827451 rgb <0.298039, 0.282353, 0.203922>]
[0.831373 rgb <0.298039, 0.266667, 0.329412>]
[0.835294 rgb <0.298039, 0.250980, 0.298039>]
[0.839216 rgb <0.282353, 0.298039, 0.141176>]
[0.843137 rgb <0.282353, 0.266667, 0.188235>]
[0.847059 rgb <0.282353, 0.250980, 0.266667>]
[0.850980 rgb <0.282353, 0.250980, 0.219608>]
[0.854902 rgb <0.282353, 0.219608, 0.298039>]
[0.858824 rgb <0.266667, 0.282353, 0.219608>]
[0.862745 rgb <0.266667, 0.266667, 0.250980>]
[0.866667 rgb <0.266667, 0.250980, 0.282353>]
[0.870588 rgb <0.266667, 0.250980, 0.235294>]
[0.874510 rgb <0.250980, 0.266667, 0.188235>]
[0.878431 rgb <0.250980, 0.250980, 0.250980>]
[0.882353 rgb <0.250980, 0.250980, 0.188235>]
[0.886275 rgb <0.250980, 0.235294, 0.172549>]
[0.890196 rgb <0.250980, 0.219608, 0.250980>]
[0.894118 rgb <0.250980, 0.219608, 0.235294>]
[0.898039 rgb <0.250980, 0.219608, 0.203922>]
[0.901961 rgb <0.250980, 0.188235, 0.250980>]
[0.905882 rgb <0.235294, 0.282353, 0.266667>]
[0.909804 rgb <0.235294, 0.266667, 0.141176>]
[0.913725 rgb <0.235294, 0.235294, 0.235294>]
[0.917647 rgb <0.235294, 0.219608, 0.203922>]
[0.921569 rgb <0.219608, 0.250980, 0.125490>]
[0.925490 rgb <0.219608, 0.235294, 0.156863>]
[0.929412 rgb <0.219608, 0.203922, 0.156863>]
[0.933333 rgb <0.219608, 0.188235, 0.219608>]
[0.937255 rgb <0.219608, 0.188235, 0.188235>]
[0.941176 rgb <0.203922, 0.219608, 0.172549>]
[0.945098 rgb <0.203922, 0.219608, 0.125490>]
[0.949020 rgb <0.203922, 0.156863, 0.235294>]
[0.952941 rgb <0.188235, 0.188235, 0.188235>]
[0.956863 rgb <0.188235, 0.188235, 0.156863>]
[0.960784 rgb <0.188235, 0.156863, 0.203922>]
[0.964706 rgb <0.172549, 0.188235, 0.125490>]
[0.968627 rgb <0.156863, 0.156863, 0.172549>]
[0.972549 rgb <0.156863, 0.156863, 0.125490>]
[0.976471 rgb <0.156863, 0.125490, 0.219608>]
[0.980392 rgb <0.141176, 0.125490, 0.125490>]
[0.984314 rgb <0.109804, 0.125490, 0.094118>]
[0.988235 rgb <0.109804, 0.109804, 0.109804>]
[0.992157 rgb <0.109804, 0.094118, 0.141176>]
[0.996078 rgb <0.094118, 0.094118, 0.094118>]
}
#version Benediti_Inc_Temp;

View file

@ -0,0 +1,267 @@
#declare Bubinga_Inc_Temp=version;
/*
Persistence of Vision Raytracer Version 3.1
Bubinga wood color_map
*/
#declare M_Bubinga =
color_map {
[0.000000 rgb <0.486275, 0.235294, 0.156863>]
[0.003922 rgb <0.486275, 0.203922, 0.125490>]
[0.007843 rgb <0.486275, 0.203922, 0.094118>]
[0.011765 rgb <0.470588, 0.219608, 0.156863>]
[0.015686 rgb <0.470588, 0.203922, 0.109804>]
[0.019608 rgb <0.470588, 0.188235, 0.094118>]
[0.023529 rgb <0.470588, 0.172549, 0.078431>]
[0.027451 rgb <0.454902, 0.235294, 0.188235>]
[0.031373 rgb <0.454902, 0.219608, 0.172549>]
[0.035294 rgb <0.454902, 0.219608, 0.141176>]
[0.039216 rgb <0.454902, 0.203922, 0.156863>]
[0.043137 rgb <0.454902, 0.203922, 0.125490>]
[0.047059 rgb <0.454902, 0.188235, 0.141176>]
[0.050980 rgb <0.454902, 0.188235, 0.109804>]
[0.054902 rgb <0.454902, 0.172549, 0.094118>]
[0.058824 rgb <0.439216, 0.235294, 0.219608>]
[0.062745 rgb <0.439216, 0.219608, 0.188235>]
[0.066667 rgb <0.439216, 0.219608, 0.156863>]
[0.070588 rgb <0.439216, 0.203922, 0.172549>]
[0.074510 rgb <0.439216, 0.203922, 0.141176>]
[0.078431 rgb <0.439216, 0.203922, 0.109804>]
[0.082353 rgb <0.439216, 0.188235, 0.156863>]
[0.086275 rgb <0.439216, 0.188235, 0.125490>]
[0.090196 rgb <0.439216, 0.188235, 0.094118>]
[0.094118 rgb <0.439216, 0.172549, 0.109804>]
[0.098039 rgb <0.439216, 0.172549, 0.078431>]
[0.101961 rgb <0.439216, 0.156863, 0.094118>]
[0.105882 rgb <0.423529, 0.219608, 0.172549>]
[0.109804 rgb <0.423529, 0.219608, 0.141176>]
[0.113725 rgb <0.423529, 0.203922, 0.156863>]
[0.117647 rgb <0.423529, 0.203922, 0.125490>]
[0.121569 rgb <0.423529, 0.188235, 0.172549>]
[0.125490 rgb <0.423529, 0.188235, 0.141176>]
[0.129412 rgb <0.423529, 0.188235, 0.109804>]
[0.133333 rgb <0.423529, 0.172549, 0.156863>]
[0.137255 rgb <0.423529, 0.172549, 0.125490>]
[0.141176 rgb <0.423529, 0.172549, 0.094118>]
[0.145098 rgb <0.423529, 0.156863, 0.109804>]
[0.149020 rgb <0.423529, 0.156863, 0.078431>]
[0.152941 rgb <0.407843, 0.219608, 0.156863>]
[0.156863 rgb <0.407843, 0.203922, 0.172549>]
[0.160784 rgb <0.407843, 0.203922, 0.141176>]
[0.164706 rgb <0.407843, 0.203922, 0.109804>]
[0.168627 rgb <0.407843, 0.188235, 0.188235>]
[0.172549 rgb <0.407843, 0.188235, 0.156863>]
[0.176471 rgb <0.407843, 0.188235, 0.125490>]
[0.180392 rgb <0.407843, 0.172549, 0.141176>]
[0.184314 rgb <0.407843, 0.172549, 0.109804>]
[0.188235 rgb <0.407843, 0.156863, 0.125490>]
[0.192157 rgb <0.407843, 0.156863, 0.094118>]
[0.196078 rgb <0.392157, 0.219608, 0.172549>]
[0.200000 rgb <0.392157, 0.203922, 0.188235>]
[0.203922 rgb <0.392157, 0.203922, 0.156863>]
[0.207843 rgb <0.392157, 0.203922, 0.125490>]
[0.211765 rgb <0.392157, 0.188235, 0.172549>]
[0.215686 rgb <0.392157, 0.188235, 0.141176>]
[0.219608 rgb <0.392157, 0.188235, 0.109804>]
[0.223529 rgb <0.392157, 0.172549, 0.156863>]
[0.227451 rgb <0.392157, 0.172549, 0.125490>]
[0.231373 rgb <0.392157, 0.172549, 0.094118>]
[0.235294 rgb <0.392157, 0.156863, 0.141176>]
[0.239216 rgb <0.392157, 0.156863, 0.109804>]
[0.243137 rgb <0.392157, 0.156863, 0.078431>]
[0.247059 rgb <0.392157, 0.141176, 0.094118>]
[0.250980 rgb <0.392157, 0.141176, 0.062745>]
[0.254902 rgb <0.376471, 0.188235, 0.156863>]
[0.258824 rgb <0.376471, 0.188235, 0.125490>]
[0.262745 rgb <0.376471, 0.188235, 0.094118>]
[0.266667 rgb <0.376471, 0.172549, 0.172549>]
[0.270588 rgb <0.376471, 0.172549, 0.141176>]
[0.274510 rgb <0.376471, 0.172549, 0.109804>]
[0.278431 rgb <0.376471, 0.156863, 0.125490>]
[0.282353 rgb <0.376471, 0.156863, 0.094118>]
[0.286275 rgb <0.376471, 0.141176, 0.109804>]
[0.290196 rgb <0.376471, 0.141176, 0.078431>]
[0.294118 rgb <0.376471, 0.125490, 0.094118>]
[0.298039 rgb <0.376471, 0.125490, 0.062745>]
[0.301961 rgb <0.360784, 0.203922, 0.172549>]
[0.305882 rgb <0.360784, 0.188235, 0.141176>]
[0.309804 rgb <0.360784, 0.172549, 0.156863>]
[0.313726 rgb <0.360784, 0.172549, 0.125490>]
[0.317647 rgb <0.360784, 0.172549, 0.094118>]
[0.321569 rgb <0.360784, 0.156863, 0.141176>]
[0.325490 rgb <0.360784, 0.156863, 0.109804>]
[0.329412 rgb <0.360784, 0.156863, 0.078431>]
[0.333333 rgb <0.360784, 0.141176, 0.125490>]
[0.337255 rgb <0.360784, 0.141176, 0.094118>]
[0.341176 rgb <0.360784, 0.141176, 0.062745>]
[0.345098 rgb <0.360784, 0.125490, 0.109804>]
[0.349020 rgb <0.360784, 0.125490, 0.078431>]
[0.352941 rgb <0.360784, 0.109804, 0.062745>]
[0.356863 rgb <0.345098, 0.203922, 0.109804>]
[0.360784 rgb <0.345098, 0.188235, 0.156863>]
[0.364706 rgb <0.345098, 0.172549, 0.141176>]
[0.368627 rgb <0.345098, 0.172549, 0.109804>]
[0.372549 rgb <0.345098, 0.172549, 0.078431>]
[0.376471 rgb <0.345098, 0.156863, 0.156863>]
[0.380392 rgb <0.345098, 0.156863, 0.125490>]
[0.384314 rgb <0.345098, 0.156863, 0.094118>]
[0.388235 rgb <0.345098, 0.141176, 0.141176>]
[0.392157 rgb <0.345098, 0.141176, 0.109804>]
[0.396078 rgb <0.345098, 0.141176, 0.078431>]
[0.400000 rgb <0.345098, 0.125490, 0.094118>]
[0.403922 rgb <0.345098, 0.125490, 0.062745>]
[0.407843 rgb <0.345098, 0.109804, 0.078431>]
[0.411765 rgb <0.345098, 0.109804, 0.047059>]
[0.415686 rgb <0.329412, 0.172549, 0.156863>]
[0.419608 rgb <0.329412, 0.172549, 0.125490>]
[0.423529 rgb <0.329412, 0.156863, 0.141176>]
[0.427451 rgb <0.329412, 0.156863, 0.109804>]
[0.431373 rgb <0.329412, 0.156863, 0.078431>]
[0.435294 rgb <0.329412, 0.141176, 0.125490>]
[0.439216 rgb <0.329412, 0.141176, 0.094118>]
[0.443137 rgb <0.329412, 0.125490, 0.109804>]
[0.447059 rgb <0.329412, 0.125490, 0.078431>]
[0.450980 rgb <0.329412, 0.109804, 0.094118>]
[0.454902 rgb <0.329412, 0.109804, 0.062745>]
[0.458824 rgb <0.329412, 0.094118, 0.078431>]
[0.462745 rgb <0.329412, 0.094118, 0.047059>]
[0.466667 rgb <0.313726, 0.203922, 0.188235>]
[0.470588 rgb <0.313726, 0.172549, 0.141176>]
[0.474510 rgb <0.313726, 0.156863, 0.125490>]
[0.478431 rgb <0.313726, 0.156863, 0.094118>]
[0.482353 rgb <0.313726, 0.141176, 0.141176>]
[0.486275 rgb <0.313726, 0.141176, 0.109804>]
[0.490196 rgb <0.313726, 0.141176, 0.078431>]
[0.494118 rgb <0.313726, 0.125490, 0.125490>]
[0.498039 rgb <0.313726, 0.125490, 0.094118>]
[0.501961 rgb <0.313726, 0.125490, 0.062745>]
[0.505882 rgb <0.313726, 0.109804, 0.109804>]
[0.509804 rgb <0.313726, 0.109804, 0.078431>]
[0.513726 rgb <0.313726, 0.109804, 0.047059>]
[0.517647 rgb <0.313726, 0.094118, 0.062745>]
[0.521569 rgb <0.298039, 0.156863, 0.141176>]
[0.525490 rgb <0.298039, 0.156863, 0.109804>]
[0.529412 rgb <0.298039, 0.141176, 0.125490>]
[0.533333 rgb <0.298039, 0.141176, 0.094118>]
[0.537255 rgb <0.298039, 0.125490, 0.109804>]
[0.541176 rgb <0.298039, 0.125490, 0.078431>]
[0.545098 rgb <0.298039, 0.109804, 0.094118>]
[0.549020 rgb <0.298039, 0.109804, 0.062745>]
[0.552941 rgb <0.298039, 0.094118, 0.078431>]
[0.556863 rgb <0.298039, 0.094118, 0.047059>]
[0.560784 rgb <0.282353, 0.156863, 0.094118>]
[0.564706 rgb <0.282353, 0.141176, 0.141176>]
[0.568627 rgb <0.282353, 0.141176, 0.109804>]
[0.572549 rgb <0.282353, 0.125490, 0.125490>]
[0.576471 rgb <0.282353, 0.125490, 0.094118>]
[0.580392 rgb <0.282353, 0.125490, 0.062745>]
[0.584314 rgb <0.282353, 0.109804, 0.109804>]
[0.588235 rgb <0.282353, 0.109804, 0.078431>]
[0.592157 rgb <0.282353, 0.109804, 0.047059>]
[0.596078 rgb <0.282353, 0.094118, 0.094118>]
[0.600000 rgb <0.282353, 0.094118, 0.062745>]
[0.603922 rgb <0.282353, 0.078431, 0.047059>]
[0.607843 rgb <0.266667, 0.156863, 0.156863>]
[0.611765 rgb <0.266667, 0.141176, 0.125490>]
[0.615686 rgb <0.266667, 0.125490, 0.109804>]
[0.619608 rgb <0.266667, 0.125490, 0.078431>]
[0.623529 rgb <0.266667, 0.109804, 0.125490>]
[0.627451 rgb <0.266667, 0.109804, 0.094118>]
[0.631373 rgb <0.266667, 0.109804, 0.062745>]
[0.635294 rgb <0.266667, 0.094118, 0.078431>]
[0.639216 rgb <0.266667, 0.094118, 0.047059>]
[0.643137 rgb <0.266667, 0.078431, 0.062745>]
[0.647059 rgb <0.250980, 0.125490, 0.125490>]
[0.650980 rgb <0.250980, 0.125490, 0.094118>]
[0.654902 rgb <0.250980, 0.125490, 0.062745>]
[0.658824 rgb <0.250980, 0.109804, 0.109804>]
[0.662745 rgb <0.250980, 0.109804, 0.078431>]
[0.666667 rgb <0.250980, 0.094118, 0.094118>]
[0.670588 rgb <0.250980, 0.094118, 0.062745>]
[0.674510 rgb <0.250980, 0.078431, 0.078431>]
[0.678431 rgb <0.250980, 0.078431, 0.047059>]
[0.682353 rgb <0.250980, 0.078431, 0.031373>]
[0.686275 rgb <0.250980, 0.062745, 0.047059>]
[0.690196 rgb <0.235294, 0.125490, 0.109804>]
[0.694118 rgb <0.235294, 0.125490, 0.094118>]
[0.698039 rgb <0.235294, 0.109804, 0.109804>]
[0.701961 rgb <0.235294, 0.109804, 0.094118>]
[0.705882 rgb <0.235294, 0.109804, 0.078431>]
[0.709804 rgb <0.235294, 0.109804, 0.062745>]
[0.713726 rgb <0.235294, 0.094118, 0.094118>]
[0.717647 rgb <0.235294, 0.094118, 0.078431>]
[0.721569 rgb <0.235294, 0.094118, 0.062745>]
[0.725490 rgb <0.235294, 0.094118, 0.047059>]
[0.729412 rgb <0.235294, 0.078431, 0.078431>]
[0.733333 rgb <0.235294, 0.078431, 0.062745>]
[0.737255 rgb <0.235294, 0.078431, 0.047059>]
[0.741176 rgb <0.235294, 0.078431, 0.031373>]
[0.745098 rgb <0.235294, 0.062745, 0.047059>]
[0.749020 rgb <0.235294, 0.062745, 0.031373>]
[0.752941 rgb <0.219608, 0.109804, 0.094118>]
[0.756863 rgb <0.219608, 0.109804, 0.078431>]
[0.760784 rgb <0.219608, 0.109804, 0.062745>]
[0.764706 rgb <0.219608, 0.094118, 0.094118>]
[0.768627 rgb <0.219608, 0.094118, 0.078431>]
[0.772549 rgb <0.219608, 0.094118, 0.062745>]
[0.776471 rgb <0.219608, 0.094118, 0.047059>]
[0.780392 rgb <0.219608, 0.078431, 0.078431>]
[0.784314 rgb <0.219608, 0.078431, 0.062745>]
[0.788235 rgb <0.219608, 0.078431, 0.047059>]
[0.792157 rgb <0.219608, 0.062745, 0.078431>]
[0.796078 rgb <0.219608, 0.062745, 0.062745>]
[0.800000 rgb <0.219608, 0.062745, 0.047059>]
[0.803922 rgb <0.219608, 0.062745, 0.031373>]
[0.807843 rgb <0.203922, 0.109804, 0.078431>]
[0.811765 rgb <0.203922, 0.094118, 0.094118>]
[0.815686 rgb <0.203922, 0.094118, 0.078431>]
[0.819608 rgb <0.203922, 0.094118, 0.062745>]
[0.823529 rgb <0.203922, 0.094118, 0.047059>]
[0.827451 rgb <0.203922, 0.078431, 0.094118>]
[0.831373 rgb <0.203922, 0.078431, 0.078431>]
[0.835294 rgb <0.203922, 0.078431, 0.062745>]
[0.839216 rgb <0.203922, 0.078431, 0.047059>]
[0.843137 rgb <0.203922, 0.062745, 0.062745>]
[0.847059 rgb <0.203922, 0.062745, 0.047059>]
[0.850980 rgb <0.203922, 0.062745, 0.031373>]
[0.854902 rgb <0.188235, 0.094118, 0.094118>]
[0.858824 rgb <0.188235, 0.094118, 0.078431>]
[0.862745 rgb <0.188235, 0.094118, 0.062745>]
[0.866667 rgb <0.188235, 0.078431, 0.078431>]
[0.870588 rgb <0.188235, 0.078431, 0.062745>]
[0.874510 rgb <0.188235, 0.078431, 0.047059>]
[0.878431 rgb <0.188235, 0.078431, 0.031373>]
[0.882353 rgb <0.188235, 0.062745, 0.062745>]
[0.886275 rgb <0.188235, 0.062745, 0.047059>]
[0.890196 rgb <0.188235, 0.062745, 0.031373>]
[0.894118 rgb <0.172549, 0.094118, 0.078431>]
[0.898039 rgb <0.172549, 0.094118, 0.062745>]
[0.901961 rgb <0.172549, 0.078431, 0.078431>]
[0.905882 rgb <0.172549, 0.078431, 0.062745>]
[0.909804 rgb <0.172549, 0.078431, 0.047059>]
[0.913725 rgb <0.172549, 0.062745, 0.062745>]
[0.917647 rgb <0.172549, 0.062745, 0.047059>]
[0.921569 rgb <0.172549, 0.062745, 0.031373>]
[0.925490 rgb <0.172549, 0.047059, 0.047059>]
[0.929412 rgb <0.156863, 0.078431, 0.062745>]
[0.933333 rgb <0.156863, 0.078431, 0.047059>]
[0.937255 rgb <0.156863, 0.062745, 0.062745>]
[0.941176 rgb <0.156863, 0.062745, 0.047059>]
[0.945098 rgb <0.156863, 0.062745, 0.031373>]
[0.949020 rgb <0.156863, 0.047059, 0.047059>]
[0.952941 rgb <0.156863, 0.047059, 0.031373>]
[0.956863 rgb <0.141176, 0.078431, 0.062745>]
[0.960784 rgb <0.141176, 0.062745, 0.062745>]
[0.964706 rgb <0.141176, 0.062745, 0.047059>]
[0.968627 rgb <0.141176, 0.062745, 0.031373>]
[0.972549 rgb <0.141176, 0.047059, 0.047059>]
[0.976471 rgb <0.141176, 0.047059, 0.031373>]
[0.980392 rgb <0.125490, 0.062745, 0.047059>]
[0.984314 rgb <0.125490, 0.062745, 0.031373>]
[0.988235 rgb <0.125490, 0.047059, 0.047059>]
[0.992157 rgb <0.125490, 0.047059, 0.031373>]
[0.996078 rgb <0.109804, 0.062745, 0.047059>]
}
#version Bubinga_Inc_Temp;

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,266 @@
#declare Cedar_Inc_Temp=version;
/*
Persistence of Vision Raytracer Version 3.1
Cedar wood color_map
*/
#declare M_Cedar =
color_map {
[0.0000 rgb <0.0941, 0.0627, 0.1569> ]
[0.0039 rgb <0.1255, 0.0000, 0.0627> ]
[0.0078 rgb <0.1569, 0.0627, 0.0941> ]
[0.0118 rgb <0.1569, 0.0941, 0.1255> ]
[0.0157 rgb <0.1569, 0.1569, 0.1882> ]
[0.0196 rgb <0.2196, 0.0941, 0.0314> ]
[0.0235 rgb <0.2196, 0.0941, 0.1569> ]
[0.0275 rgb <0.2196, 0.1569, 0.1569> ]
[0.0314 rgb <0.2196, 0.2510, 0.2196> ]
[0.0353 rgb <0.2510, 0.0314, 0.0627> ]
[0.0392 rgb <0.2510, 0.2196, 0.1569> ]
[0.0431 rgb <0.2824, 0.0941, 0.0941> ]
[0.0471 rgb <0.2824, 0.1569, 0.0314> ]
[0.0510 rgb <0.2824, 0.1569, 0.1882> ]
[0.0549 rgb <0.2824, 0.2510, 0.1882> ]
[0.0588 rgb <0.3137, 0.0941, 0.0627> ]
[0.0627 rgb <0.3137, 0.1569, 0.0314> ]
[0.0667 rgb <0.3451, 0.1569, 0.1569> ]
[0.0706 rgb <0.3451, 0.2196, 0.1569> ]
[0.0745 rgb <0.3451, 0.2510, 0.1255> ]
[0.0784 rgb <0.3451, 0.2824, 0.1569> ]
[0.0824 rgb <0.3451, 0.3765, 0.2824> ]
[0.0863 rgb <0.4078, 0.1255, 0.0941> ]
[0.0902 rgb <0.4078, 0.2196, 0.1255> ]
[0.0941 rgb <0.4078, 0.2510, 0.1255> ]
[0.0980 rgb <0.4078, 0.2510, 0.1882> ]
[0.1020 rgb <0.4078, 0.2510, 0.2196> ]
[0.1059 rgb <0.4078, 0.2824, 0.1255> ]
[0.1098 rgb <0.4078, 0.3137, 0.1569> ]
[0.1137 rgb <0.4078, 0.3137, 0.2196> ]
[0.1176 rgb <0.4078, 0.3137, 0.2824> ]
[0.1216 rgb <0.4078, 0.4078, 0.2824> ]
[0.1255 rgb <0.4392, 0.1882, 0.1255> ]
[0.1294 rgb <0.4392, 0.2196, 0.1569> ]
[0.1333 rgb <0.4392, 0.3765, 0.2510> ]
[0.1373 rgb <0.4392, 0.4392, 0.3451> ]
[0.1412 rgb <0.4706, 0.2196, 0.1569> ]
[0.1451 rgb <0.4706, 0.2510, 0.1255> ]
[0.1490 rgb <0.4706, 0.2510, 0.2196> ]
[0.1529 rgb <0.4706, 0.3137, 0.1569> ]
[0.1569 rgb <0.4706, 0.3137, 0.2196> ]
[0.1608 rgb <0.4706, 0.3137, 0.2510> ]
[0.1647 rgb <0.4706, 0.3137, 0.2824> ]
[0.1686 rgb <0.5020, 0.2510, 0.1569> ]
[0.1725 rgb <0.5020, 0.2510, 0.2196> ]
[0.1765 rgb <0.5020, 0.3765, 0.2196> ]
[0.1804 rgb <0.5020, 0.3765, 0.2824> ]
[0.1843 rgb <0.5020, 0.4078, 0.2196> ]
[0.1882 rgb <0.5020, 0.4078, 0.3137> ]
[0.1922 rgb <0.5020, 0.4392, 0.2824> ]
[0.1961 rgb <0.5020, 0.4706, 0.3451> ]
[0.2000 rgb <0.5333, 0.2510, 0.1882> ]
[0.2039 rgb <0.5333, 0.3137, 0.1882> ]
[0.2078 rgb <0.5333, 0.3137, 0.2510> ]
[0.2118 rgb <0.5333, 0.3137, 0.2824> ]
[0.2157 rgb <0.5804, 0.2510, 0.2196> ]
[0.2196 rgb <0.5804, 0.3137, 0.1882> ]
[0.2235 rgb <0.5804, 0.3137, 0.2510> ]
[0.2275 rgb <0.5804, 0.3451, 0.2824> ]
[0.2314 rgb <0.5804, 0.3765, 0.1882> ]
[0.2353 rgb <0.5804, 0.3765, 0.2510> ]
[0.2392 rgb <0.5804, 0.3765, 0.3137> ]
[0.2431 rgb <0.5804, 0.3765, 0.3451> ]
[0.2471 rgb <0.5804, 0.4078, 0.2510> ]
[0.2510 rgb <0.5804, 0.4078, 0.3137> ]
[0.2549 rgb <0.5804, 0.4078, 0.3451> ]
[0.2588 rgb <0.5804, 0.4392, 0.2196> ]
[0.2627 rgb <0.5804, 0.4392, 0.2824> ]
[0.2667 rgb <0.5804, 0.4392, 0.3451> ]
[0.2706 rgb <0.5804, 0.4392, 0.3765> ]
[0.2745 rgb <0.5804, 0.4706, 0.2824> ]
[0.2784 rgb <0.5804, 0.4706, 0.3765> ]
[0.2824 rgb <0.5804, 0.5020, 0.3451> ]
[0.2863 rgb <0.5804, 0.5020, 0.4078> ]
[0.2902 rgb <0.5804, 0.5804, 0.4078> ]
[0.2941 rgb <0.6118, 0.3137, 0.2196> ]
[0.2980 rgb <0.6118, 0.3137, 0.2824> ]
[0.3020 rgb <0.6118, 0.3765, 0.2510> ]
[0.3059 rgb <0.6118, 0.6118, 0.4706> ]
[0.3098 rgb <0.6431, 0.3137, 0.2510> ]
[0.3137 rgb <0.6431, 0.3765, 0.2510> ]
[0.3176 rgb <0.6431, 0.3765, 0.3137> ]
[0.3216 rgb <0.6431, 0.4078, 0.3451> ]
[0.3255 rgb <0.6431, 0.4392, 0.2824> ]
[0.3294 rgb <0.6431, 0.4392, 0.3451> ]
[0.3333 rgb <0.6431, 0.4392, 0.3765> ]
[0.3373 rgb <0.6431, 0.4706, 0.3765> ]
[0.3412 rgb <0.6431, 0.5020, 0.3137> ]
[0.3451 rgb <0.6431, 0.5020, 0.3765> ]
[0.3490 rgb <0.6431, 0.5020, 0.4078> ]
[0.3529 rgb <0.6431, 0.5020, 0.4392> ]
[0.3569 rgb <0.6431, 0.5333, 0.3137> ]
[0.3608 rgb <0.6431, 0.5333, 0.3765> ]
[0.3647 rgb <0.6431, 0.5333, 0.4078> ]
[0.3686 rgb <0.6431, 0.5333, 0.4392> ]
[0.3725 rgb <0.6745, 0.3765, 0.2510> ]
[0.3765 rgb <0.6745, 0.3765, 0.3451> ]
[0.3804 rgb <0.6745, 0.4392, 0.2824> ]
[0.3843 rgb <0.6745, 0.4392, 0.3451> ]
[0.3882 rgb <0.6745, 0.4392, 0.3765> ]
[0.3922 rgb <0.6745, 0.4706, 0.3765> ]
[0.3961 rgb <0.6745, 0.4706, 0.4078> ]
[0.4000 rgb <0.6745, 0.5804, 0.4078> ]
[0.4039 rgb <0.6745, 0.6118, 0.4392> ]
[0.4078 rgb <0.7059, 0.3765, 0.3137> ]
[0.4118 rgb <0.7059, 0.4392, 0.3451> ]
[0.4157 rgb <0.7059, 0.4706, 0.3137> ]
[0.4196 rgb <0.7059, 0.4706, 0.3765> ]
[0.4235 rgb <0.7059, 0.5020, 0.3451> ]
[0.4275 rgb <0.7059, 0.5020, 0.4078> ]
[0.4314 rgb <0.7059, 0.5020, 0.4392> ]
[0.4353 rgb <0.7059, 0.5333, 0.3451> ]
[0.4392 rgb <0.7059, 0.5333, 0.4392> ]
[0.4431 rgb <0.7059, 0.5804, 0.3765> ]
[0.4471 rgb <0.7059, 0.5804, 0.4392> ]
[0.4510 rgb <0.7059, 0.6118, 0.4392> ]
[0.4549 rgb <0.7059, 0.6431, 0.4706> ]
[0.4588 rgb <0.7373, 0.4078, 0.3451> ]
[0.4627 rgb <0.7373, 0.4706, 0.3765> ]
[0.4667 rgb <0.7373, 0.5020, 0.3451> ]
[0.4706 rgb <0.7373, 0.5020, 0.4078> ]
[0.4745 rgb <0.7373, 0.5020, 0.4392> ]
[0.4784 rgb <0.7373, 0.5020, 0.4706> ]
[0.4824 rgb <0.7373, 0.5804, 0.3451> ]
[0.4863 rgb <0.7373, 0.5804, 0.4078> ]
[0.4902 rgb <0.7373, 0.5804, 0.4392> ]
[0.4941 rgb <0.7373, 0.5804, 0.4706> ]
[0.4980 rgb <0.7373, 0.5804, 0.5020> ]
[0.5020 rgb <0.7373, 0.6118, 0.3765> ]
[0.5059 rgb <0.7373, 0.6118, 0.4392> ]
[0.5098 rgb <0.7373, 0.6118, 0.4706> ]
[0.5137 rgb <0.7373, 0.6118, 0.5020> ]
[0.5176 rgb <0.7373, 0.6118, 0.5333> ]
[0.5216 rgb <0.7373, 0.6431, 0.4078> ]
[0.5255 rgb <0.7373, 0.6431, 0.4706> ]
[0.5294 rgb <0.7373, 0.6431, 0.5020> ]
[0.5333 rgb <0.7373, 0.6431, 0.5333> ]
[0.5373 rgb <0.7373, 0.6745, 0.4392> ]
[0.5412 rgb <0.7373, 0.6745, 0.5020> ]
[0.5451 rgb <0.7373, 0.6745, 0.5333> ]
[0.5490 rgb <0.7373, 0.6745, 0.5804> ]
[0.5529 rgb <0.7373, 0.7373, 0.5804> ]
[0.5569 rgb <0.7686, 0.4706, 0.3765> ]
[0.5608 rgb <0.7686, 0.5020, 0.3765> ]
[0.5647 rgb <0.7686, 0.5020, 0.4392> ]
[0.5686 rgb <0.7686, 0.5333, 0.4706> ]
[0.5725 rgb <0.7686, 0.5804, 0.4392> ]
[0.5765 rgb <0.8000, 0.5020, 0.3765> ]
[0.5804 rgb <0.8000, 0.5020, 0.4392> ]
[0.5843 rgb <0.8000, 0.5804, 0.4392> ]
[0.5882 rgb <0.8000, 0.5804, 0.5020> ]
[0.5922 rgb <0.8000, 0.6118, 0.4078> ]
[0.5961 rgb <0.8000, 0.6118, 0.4706> ]
[0.6000 rgb <0.8000, 0.6118, 0.5020> ]
[0.6039 rgb <0.8000, 0.6431, 0.5020> ]
[0.6078 rgb <0.8000, 0.6431, 0.5333> ]
[0.6118 rgb <0.8000, 0.6745, 0.4392> ]
[0.6157 rgb <0.8000, 0.6745, 0.5020> ]
[0.6196 rgb <0.8000, 0.6745, 0.5333> ]
[0.6235 rgb <0.8000, 0.6745, 0.5804> ]
[0.6275 rgb <0.8000, 0.6745, 0.6118> ]
[0.6314 rgb <0.8000, 0.7059, 0.4392> ]
[0.6353 rgb <0.8000, 0.7059, 0.5020> ]
[0.6392 rgb <0.8000, 0.7059, 0.5333> ]
[0.6431 rgb <0.8000, 0.7059, 0.5804> ]
[0.6471 rgb <0.8000, 0.7059, 0.6118> ]
[0.6510 rgb <0.8000, 0.7373, 0.5020> ]
[0.6549 rgb <0.8000, 0.7373, 0.6118> ]
[0.6588 rgb <0.8314, 0.5020, 0.4392> ]
[0.6627 rgb <0.8314, 0.5804, 0.4392> ]
[0.6667 rgb <0.8314, 0.5804, 0.5020> ]
[0.6706 rgb <0.8314, 0.6118, 0.4392> ]
[0.6745 rgb <0.8314, 0.6431, 0.5020> ]
[0.6784 rgb <0.8314, 0.6431, 0.5333> ]
[0.6824 rgb <0.8314, 0.6745, 0.5333> ]
[0.6863 rgb <0.8314, 0.7373, 0.4706> ]
[0.6902 rgb <0.8314, 0.7373, 0.5333> ]
[0.6941 rgb <0.8314, 0.7373, 0.6118> ]
[0.6980 rgb <0.8314, 0.7373, 0.6431> ]
[0.7020 rgb <0.8314, 0.7686, 0.5333> ]
[0.7059 rgb <0.8314, 0.7686, 0.6118> ]
[0.7098 rgb <0.8314, 0.7686, 0.6431> ]
[0.7137 rgb <0.8314, 0.8000, 0.5333> ]
[0.7176 rgb <0.8314, 0.8000, 0.6431> ]
[0.7216 rgb <0.8314, 0.8314, 0.6431> ]
[0.7255 rgb <0.8627, 0.5804, 0.4392> ]
[0.7294 rgb <0.8627, 0.6118, 0.4706> ]
[0.7333 rgb <0.8627, 0.6118, 0.5333> ]
[0.7373 rgb <0.8627, 0.6745, 0.5020> ]
[0.7412 rgb <0.8627, 0.6745, 0.5804> ]
[0.7451 rgb <0.8627, 0.7059, 0.5020> ]
[0.7490 rgb <0.8627, 0.7059, 0.5804> ]
[0.7529 rgb <0.8627, 0.7059, 0.6118> ]
[0.7569 rgb <0.8627, 0.7373, 0.5333> ]
[0.7608 rgb <0.8627, 0.8627, 0.6745> ]
[0.7647 rgb <0.8627, 0.9255, 0.7686> ]
[0.7686 rgb <0.8941, 0.6118, 0.4706> ]
[0.7725 rgb <0.8941, 0.6118, 0.5333> ]
[0.7765 rgb <0.8941, 0.6745, 0.5020> ]
[0.7804 rgb <0.8941, 0.6745, 0.5804> ]
[0.7843 rgb <0.8941, 0.7059, 0.6118> ]
[0.7882 rgb <0.8941, 0.7373, 0.5020> ]
[0.7922 rgb <0.8941, 0.7373, 0.5804> ]
[0.7961 rgb <0.8941, 0.7373, 0.6431> ]
[0.8000 rgb <0.8941, 0.7686, 0.5333> ]
[0.8039 rgb <0.8941, 0.7686, 0.6118> ]
[0.8078 rgb <0.8941, 0.7686, 0.6431> ]
[0.8118 rgb <0.8941, 0.8000, 0.6431> ]
[0.8157 rgb <0.8941, 0.8314, 0.6118> ]
[0.8196 rgb <0.8941, 0.8314, 0.6745> ]
[0.8235 rgb <0.9255, 0.6745, 0.5020> ]
[0.8275 rgb <0.9255, 0.6745, 0.5804> ]
[0.8314 rgb <0.9255, 0.6745, 0.6118> ]
[0.8353 rgb <0.9255, 0.7373, 0.5804> ]
[0.8392 rgb <0.9255, 0.7373, 0.6431> ]
[0.8431 rgb <0.9255, 0.7686, 0.5804> ]
[0.8471 rgb <0.9255, 0.7686, 0.6431> ]
[0.8510 rgb <0.9255, 0.8000, 0.6431> ]
[0.8549 rgb <0.9255, 0.8000, 0.6745> ]
[0.8588 rgb <0.9255, 0.8314, 0.6118> ]
[0.8627 rgb <0.9255, 0.8314, 0.6745> ]
[0.8667 rgb <0.9255, 0.8314, 0.7059> ]
[0.8706 rgb <0.9255, 0.8314, 0.7373> ]
[0.8745 rgb <0.9255, 0.8627, 0.6431> ]
[0.8784 rgb <0.9255, 0.8627, 0.7059> ]
[0.8824 rgb <0.9255, 0.8627, 0.7373> ]
[0.8863 rgb <0.9255, 0.9255, 0.7686> ]
[0.8902 rgb <0.9569, 0.7373, 0.6431> ]
[0.8941 rgb <0.9569, 0.7686, 0.5804> ]
[0.8980 rgb <0.9569, 0.7686, 0.6745> ]
[0.9020 rgb <0.9569, 0.8000, 0.6745> ]
[0.9059 rgb <0.9569, 0.8000, 0.7059> ]
[0.9098 rgb <0.9569, 0.8941, 0.7059> ]
[0.9137 rgb <0.9569, 0.9255, 0.8000> ]
[0.9176 rgb <0.9882, 0.8314, 0.6745> ]
[0.9216 rgb <0.9882, 0.8314, 0.7373> ]
[0.9255 rgb <0.9882, 0.8627, 0.6745> ]
[0.9294 rgb <0.9882, 0.8627, 0.7373> ]
[0.9333 rgb <0.9882, 0.8941, 0.6745> ]
[0.9373 rgb <0.9882, 0.8941, 0.7373> ]
[0.9412 rgb <0.9882, 0.8941, 0.7686> ]
[0.9451 rgb <0.9882, 0.8941, 0.8000> ]
[0.9490 rgb <0.9882, 0.9255, 0.6745> ]
[0.9529 rgb <0.9882, 0.9255, 0.7373> ]
[0.9569 rgb <0.9882, 0.9255, 0.7686> ]
[0.9608 rgb <0.9882, 0.9255, 0.8000> ]
[0.9647 rgb <0.9882, 0.9255, 0.8314> ]
[0.9686 rgb <0.9882, 0.9569, 0.7373> ]
[0.9725 rgb <0.9882, 0.9569, 0.8000> ]
[0.9765 rgb <0.9882, 0.9569, 0.8314> ]
[0.9804 rgb <0.9882, 0.9569, 0.8627> ]
[0.9843 rgb <0.9882, 0.9882, 0.7373> ]
[0.9882 rgb <0.9882, 0.9882, 0.8000> ]
[0.9922 rgb <0.9882, 0.9882, 0.8314> ]
[0.9961 rgb <0.9882, 0.9882, 0.8627> ]
}
#version Cedar_Inc_Temp;

View file

@ -0,0 +1,673 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: chars.inc
// Last updated: 2001.7.21
// Description: This file contains letters as objects.
#ifndef(Chars_Inc_Temp)
#declare Chars_Inc_Temp=version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
# debug "including chars.inc\n"
#end
/*
Characters for POV-Ray Version 3.1
Original by Ken Maeno 1992-93
Revised and extended by Chris Young
Revised for internal web removal by John Andersen
This file includes 26 upper-case letter and other characters defined
as objects. The size of all characters is 4 * 5 * 1. The center of the
bottom side of a character face is set to the origin, so please
translate a character appropriately before rotating it about
the x or z axes.
Usage:
object{
char_A
pigment{ color Red }
}
*/
#declare char_A =
intersection {
box{<-2,0,-0.1>,<2,5,1.1>}
union {
box{<-0.5,-6,0>,<0.5,0,1> rotate z*16.699 }
box{<-0.5,-6,0>,<0.5,0,1> rotate -z*16.699 }
box{<-1, -4,0>,<1, -3,1> }
translate y*5
}
bounded_by{ box { <-2,0,0>,<2,5,1> } }
}
#declare char_P =
union {
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{x,0}
bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
translate<0.5, 3.5, 0>
}
box{ <-1.001, 4, 0>, <0.501, 5, 1> }
box{ <-1.001, 2, 0>, <0.501, 3, 1> }
box{ <-2, 0, 0>, <-1, 5, 1 > }
}
#declare char_B =
union {
object{char_P}
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{x,0}
bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
translate<0.5, 1.5, 0>
}
box{ <-1.001, 0, 0>, <0.501, 1, 1> }
}
#declare char_C =
union {
difference{
cylinder{0*z,z,2}
cylinder{-z,2*z,1}
plane{y,0}
bounded_by{ box { <-2,0,0>, <2,2,1> } }
translate 3*y
}
difference{
cylinder{0*z,z,2}
cylinder{-z,2*z,1}
plane{-y,0}
bounded_by{ box { <-2,-2,0>, <2,0,1> } }
translate 2*y
}
box{ <-2,1.999,0>,<-1,3.001,1> }
}
#declare char_D =
union {
difference{
cylinder{0*z,z,2.5}
cylinder{-z,2*z,1.5}
plane{x,0}
bounded_by{ box { <0,-2.5,0>, <2.5,2.5,1> } }
translate <-0.5,2.5,0>
}
box{ <-1.001,4,0>,<-0.499,5,1> }
box{ <-1.001,0,0>,<-0.499,1,1> }
box{ <-2,0,0>,<-1,5,1> }
}
#declare char_F =
union {
box{ <-2,0,0>,<-1,5,1> }
box{ <-1.001,2,0>,<1.5,3,1> }
box{ <-1.001,4,0>,<2,5,1> }
}
#declare char_E =
union {
object{char_F}
box{ <-1.001,0,0>,<2,1,1> }
}
#declare char_G =
union {
object{char_C}
box{ < 0,1.5,0>,<2,2.3,1> }
}
#declare char_H =
union {
box{ <-2,0,0>,<-1,5,1> }
box{ < 1,0,0>,< 2,5,1> }
box{ <-1.001,2,0>,< 1.001,3,1> }
}
#declare char_I =
box{ <-0.5,0,0>,<0.5,5,1> }
#declare char_J =
union {
difference{
cylinder{0*z,z,2}
cylinder{-z,2*z,1}
plane{-y,0}
bounded_by{ box { <-2,-2,0>, <2,0,1> } }
translate 2*y
}
box{ <1,1.999,0>,<2,5,1> }
}
#declare char_K =
union {
intersection {
union {
box{ <0,-2,0>,<0.9,5,1> rotate z*45 translate x*0.7272 }
box{ <0,-5,0>,<0.9,2,1> rotate -z*45 translate <0.7272,5,0> }
}
box { <-1,0,-0.1>,<2,5,1.1> }
bounded_by{ box { <-2,0,0>,<2,5,1> } }
}
box { <-2,0,0>,<-1,5,1> }
}
#declare char_L =
union {
box{ <-2,1,0>,<-1,5,1> }
box{ <-2.001,0,0>,<2,1,1> }
}
#declare char_M =
union {
intersection{
union {
box{<-0.5,-1,0>,<0.5,5,1> rotate z*26.5651}
box{<-0.5,-1,0>,<0.5,5,1> rotate -z*26.5651}
}
box{<-1,0,-0.1>,<1,3,1.1>}
bounded_by{box{<-2,0,0>,<2,4,1>}}
translate y*2
}
box{ <-2,0,0>,<-1,5,1> }
box{ < 1,0,0>,< 2,5,1> }
}
#declare char_N =
union {
intersection{
box{ <0,0,0>,<1,6,1> rotate z*32.5031 translate x}
box{ <-1,0,-0.1>,<1,5,1.1> }
bounded_by{box{ <-1,0,0>,<1,5,1> } }
}
box{ <-2,0,0>,<-1,5,1> }
box{ <1,0,0>,<2,5,1> }
}
#declare char_O =
union {
object {char_C}
box{ <1,1.999,0>,<2,3.001,1> }
}
#declare char_Q =
union {
object {char_O}
box{ <0,0,0>,<1,2.2,1> rotate z*45 translate x*1.29289}
}
#declare char_R =
union {
object {char_P}
intersection {
box{ <0,-2,0>,<1,5,1> rotate z*36.8699 translate x}
box{ <-1,0,-0.1>,<2,2,1.1> }
bounded_by{box{ <-1,0,0>,<2,2,1> }}
}
}
#declare char_S =
union {
intersection{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5 inverse}
box{<0,0,-0.1>,<1.5,1.5,1.1>}
bounded_by{ box { <0,0,0>, <1.5, 1.5, 1> } }
translate <0.5,3.5,0>
}
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{x,0}
bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
translate<0.5, 1.5, 0>
}
intersection{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5 inverse}
box{<-1.5,-1.5,-0.1>,<0,0,1.1>}
bounded_by{ box { <-1.5,-1.5,0>, <0, 0, 1> } }
translate <-0.5,1.5,0>
}
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{-x,0}
bounded_by{ box { <-1.5,-1.5,0>, <0, 1.5, 1> } }
translate<-0.5, 3.5, 0>
}
box{ <-0.502,4,0>,<0.502,5,1> }
box{ <-0.502,2,0>,<0.502,3,1> }
box{ <-0.502,0,0>,<0.502,1,1> }
}
#declare char_T =
union{
box{ <-0.5,0,0>,<0.5,4,1> }
box{ <-2, 4,0>,< 2,5,1> }
}
#declare char_U =
union {
object{char_J}
box{ <-2,1.998,0>,<-1,5,1> }
}
#declare char_V =
intersection {
box{<-2,0,-0.1>,<2,5,1.1>}
union {
box{<-0.5,-1,0>,<0.5,6,1> rotate z*16.699 }
box{<-0.5,-1,0>,<0.5,6,1> rotate -z*16.699 }
}
bounded_by{ box { <-2,0,0>,<2,5,1> } }
}
#declare char_W =
union {
intersection{
union {
box{<-0.5,-5,0>,<0.5,0,1> rotate z*26.5651}
box{<-0.5,-5,0>,<0.5,0,1> rotate -z*26.5651}
translate 3*y
}
box{<-1,0,-0.1>,<1,3,1.1>}
bounded_by{box{<-1,0,0>,<2,3,1>}}
}
box{ <-2,0,0>,<-1,5,1> }
box{ < 1,0,0>,< 2,5,1> }
}
#declare char_X =
intersection {
box{<-2,0,-0.1>,<2,5,1.1>}
union {
box{<-0.5,-3.5,0>,<0.5,3.5,1> rotate z*30.9}
box{<-0.5,-3.5,0>,<0.5,3.5,1> rotate -z*30.9}
translate 2.5*y
}
bounded_by{ box { <-2,0,0>,<2,5,1> } }
}
#declare char_Y =
union {
intersection {
box{<-2,2,-0.1>,<2,5,1.1>}
union {
box{<-0.5,0,0>,<0.5,3.5,1> rotate z*30.9}
box{<-0.5,0,0>,<0.5,3.5,1> rotate -z*30.9}
translate 2.5*y
}
bounded_by{ box { <-2,2,0>,<2,5,1> } }
}
box {<-0.5,0,0>,<0.5,3,1>}
}
#declare char_Z =
union {
intersection{
box{ <0,0,0>,<1,7,1> rotate z*-29.6749 translate -2*x}
box{<-2,0,-0.1>,<2,5,1.1>}
bounded_by{ box { <-2,0,0>,<2,5,1> } }
}
box{ <-2,4,0>,<1.2,5,1> }
box{ <-1.2,0,0>,<2,1,1> }
}
#declare char_Dash =
box{ <-2,2,0>,<2,3,1> }
#declare char_Plus =
union{
box{ <-2,2,0>,<2,3,1> }
box{ <-0.5,0.5,0>,<0.5,4.5,1> }
}
#declare char_0 = object{char_O}
#declare char_1 =
union{
object{char_I}
box{ <0,-1.25,0>,<1,0,1> rotate -z*45 translate <-0.5,5,0>}
box{ <-1,0,0>,<1,1,1> }
}
#declare char_2 =
union{
intersection{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5 inverse}
box{<-1.5,0,-0.1>,<0,1.5,1.1>}
bounded_by{ box { <-1.5,0,0>, <0, 1.5, 1> } }
translate<-0.5, 3.5, 0>
}
intersection{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5 inverse}
plane{-x,0 }
plane{-y,0 rotate -z*54 }
bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
translate <0.5,3.5,0>
}
box{<-0.501,4,0>,<0.501,5,1>}
box{<-2,0,0>,<2,1,1>}
box{<-0.999,0.5,0>,<3.5,1.5,1> rotate -z*(90+54) translate <0.5,3.5,0>}
}
#declare char_3 =
union {
intersection{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5 inverse}
box{<-1.5,0,-0.1>,<0,1.5,1.1>}
bounded_by{ box { <-1.5,0,0>, <0, 1.5, 1> } }
translate<-0.5, 3.5, 0>
}
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{x,0}
bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
translate<0.5, 3.5, 0>
}
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{x,0}
bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
translate<0.5, 1.5, 0>
}
intersection{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5 inverse}
box{<-1.5,-1.5,-0.1>,<0,0,1.1>}
bounded_by{ box { <-1.5,-1.5,0>, <0, 0, 1> } }
translate <-0.5,1.5,0>
}
box{ <-0.501,4,0>,<0.501,5,1> }
box{ <-0.5,2,0>,<0.501,3,1> }
box{ <-0.501,0,0>,<0.501,1,1> }
}
#declare char_4 =
union {
box {<0,0,0>,<1,5,1>}
box {<-2,1,0>,<2,2,1>}
box {<0,-1,0>,<3.6,0,1> rotate z*56.31 translate <-2,2,0>}
}
#declare char_5 =
union {
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{x,0}
bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
translate<0.5, 1.5, 0>
}
intersection{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5 inverse}
box{<-1.5,-1.5,-0.1>,<0,0,1.1>}
bounded_by{ box { <-1.5,-1.5,0>, <0, 0, 1> } }
translate <-0.5,1.5,0>
}
box{ <-1.001,4,0>,<2,5,1> }
box{ <-2,2,0>,<-1,5,1> }
box{ <-1.001,2,0>,<0.501,3,1> }
box{ <-0.501,0,0>,<0.501,1,1> }
}
#declare char_6 =
union {
intersection{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5 inverse}
box{<0,0,-0.1>,<1.5,1.5,1.1>}
bounded_by{ box { <0,0,0>, <1.5, 1.5, 1> } }
translate <0.5,3.5,0>
}
intersection{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5 inverse}
box{<-1.5,0,-0.1>,<0,1.5,1.1>}
bounded_by{ box { <-1.5,0,0>, <0,1.5,1> } }
translate<-0.5, 3.5, 0>
}
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{x,0}
bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
translate<0.5, 1.5, 0>
}
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{-x,0}
bounded_by{ box { <-1.5,-1.5,0>, <0, 1.5, 1> } }
translate <-0.5,1.5,0>
}
box{ <-0.501,4,0>,<0.501,5,1> }
box{ <-2,1.5,0>,<-1,3.501,1> }
box{ <-0.501,2,0>,<0.501,3,1> }
box{ <-0.501,0,0>,<0.501,1,1> }
}
#declare char_7 =
union{
box{ <-2, 4,0>,< 2,5,1> }
intersection {
box{ <-1,-1,0>,<0,4.272,1> rotate -z*20.556 translate x/2}
box{<-0.5,0,-0.1>,<2,4.5,1.1>}
bounded_by{box{<-0.5,0,-0>,<2,4.5,1>}}
}
}
#declare char_8 =
union {
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{-x,0}
bounded_by{ box { <-1.5,-1.5,0>, <0, 1.5, 1> } }
translate<-0.5, 3.5, 0>
}
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{x,0}
bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
translate<0.5, 3.5, 0>
}
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{x,0}
bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
translate<0.5, 1.5, 0>
}
difference{
cylinder{0*z,z,1.5}
cylinder{-z,2*z,0.5}
plane{-x,0}
bounded_by{ box { <-1.5,-1.5,0>, <0, 1.5, 1> } }
translate <-0.5,1.5,0>
}
box{ <-0.501,4,0>,<0.501,5,1> }
box{ <-0.501,2,0>,<0.501,3,1> }
box{ <-0.501,0,0>,<0.501,1,1> }
}
#declare char_9 =
object{char_6 translate -2.5*y rotate z*180 translate 2.5*y}
#declare char_ExclPt=
union {
cylinder {<0,4.5,0>,<0,4.5,1>,0.5}
cylinder {<0,0.5,0>,<0,0.5,1>,0.5}
intersection {
box{<-0.5,-3,0>,<0.5,0,1> rotate z*9.5}
box{<-0.5,-3,-0.1>,<0.5,0,1.1> rotate -z*9.5 }
bounded_by{box{<-0.5,-3,0>,<0.5,0,1> }}
translate y*4.5
}
}
#declare char_AtSign =
union {
difference{
cylinder{0*z,z,2}
cylinder{-z,2*z,1.5}
box { <0,-1.25,-0.1>, <2.5,0,1.1> }
bounded_by{ box { <-2,-2,0>, <2,2,1> } }
translate 2.5*y
}
difference{
cylinder{0*z,z,0.75}
cylinder{-z,2*z,0.25}
plane{-y,0}
bounded_by{ box { <-2,-2,0>, <2,0,1> } }
translate <1.25,2.5,0>
}
difference{
cylinder{0*z,z,1}
cylinder{-z,2*z,0.5}
bounded_by{ box { <-1,-1,0>, <1,1,1> } }
translate 2.5*y
}
}
#declare char_Num =
union {
box{ <-0.5,-2,0>,<0.5,2,1> rotate -10*z translate <-1,2.5,0>}
box{ <-0.5,-2,0>,<0.5,2,1> rotate -10*z translate < 1,2.5,0>}
box{ <-1.5,3,0>,< 2,4,1> }
box{ <-2,1,0>,< 1.5,2,1> }
}
#declare char_Dol =
union {
difference{
cylinder{0*z,z,1.25}
cylinder{-z,2*z,0.25}
plane{x,0}
bounded_by{ box { <0,-1.25,0>, <1.25, 1.25, 1> } }
translate<0.75, 1.75, 0>
}
difference{
cylinder{0*z,z,1.25}
cylinder{-z,2*z,0.25}
plane{-x,0}
bounded_by{ box { <-1.25,-1.25,0>, <0, 1.25, 1> } }
translate<-0.75, 3.25, 0>
}
box{ <-0.751,3.5,0>,<2,4.5,1> }
box{ <-0.751,2,0>,<0.751,3,1> }
box{ <-2,0.5,0>,<0.751,1.5,1> }
box{ <-0.5,0,0>,<0.5,5,1> }
}
#declare char_Perc =
union {
difference{
cylinder{0*z,z,1}
cylinder{-z,2*z,0.25}
bounded_by{ box { <-1,-1,0>, <1, 1, 1> } }
translate<1, 1, 0>
}
difference{
cylinder{0*z,z,1}
cylinder{-z,2*z,0.25}
bounded_by{ box { <-1,-1,0>, <1, 1, 1> } }
translate<-1, 4, 0>
}
box{ <-0.25,-2.8,0>,<0.25,2.8,1> rotate -33*z translate 2.5*y}
}
#declare char_Hat =
intersection {
union {
box{ <0,0,0>,<1,3,1> rotate -33*z translate <-2,1.5,0>}
box{ <-1,0,0>,<0,3,1> rotate 33*z translate < 2,1.5,0>}
}
box {<-2.1,1.5,-0.1>,<2.1,3.75,1.1>}
bounded_by{box {<-2.1,1.5,0>,<2.1,3.75,1>}}
}
#declare char_Amps =
union {
difference{
cylinder{0*z,z,1.25}
cylinder{-z,2*z,0.5}
bounded_by{ box { <-1.25,-1.25,0>, <1.25, 1.25, 1> } }
translate <-0.25,3.75,0>
}
difference{
cylinder{0*z,z,1.75}
cylinder{-z,2*z,0.75}
bounded_by{ box { <-1.75,-1.75,0>, <1.75, 1.75, 1> } }
translate <-0.25,1.75,0>
}
difference{
cylinder{0*z,z,1.25}
cylinder{-z,2*z,0.5}
plane{-x,0}
bounded_by{ box { <-1.25,-1.25,0>, <0, 1.25, 1> } }
translate <2,1.75,0>
}
}
#declare char_Astr =
union {
box{ <-0.5,-2,0>,<0.5,2,1> }
box{ <-0.5,-2,0>,<0.5,2,1> rotate 60*z}
box{ <-0.5,-2,0>,<0.5,2,1> rotate -60*z}
translate 2.5*y
}
#declare char_LPar =
intersection{
cylinder{<7,2.5,0>,<7,2.5,1>, 7.5}
cylinder{<7,2.5,-0.1>,<7,2.5,1.1>, 6.5 inverse}
box{<-2,0,-0.1>,<2,5,1.1>}
bounded_by{box{<-1,0,0>,<1,5,1>}}
}
#declare char_RPar =
intersection{
cylinder{<-7,2.5,0>,<-7,2.5,1>, 7.5}
cylinder{<-7,2.5,-0.1>,<-7,2.5,1.1>, 6.5 inverse}
box{<-2,0,-0.1>,<2,5,1.1>}
bounded_by{box{<-1,0,0>,<1,5,1>}}
}
#declare char_LSqu =
union {
box{<-1,0,0>,<0,5,1>}
box{<-0.001,0,0>,<1,1,1>}
box{<-0.001,4,0>,<1,5,1>}
}
#declare char_RSqu =
union {
box{<0,0,0>,<1,5,1>}
box{<-1,0,0>,<0.001,1,1>}
box{<-1,4,0>,<0.001,5,1>}
}
// End of CHARS.INC
#version Chars_Inc_Temp;
#end

View file

@ -0,0 +1,275 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: colors.inc
// Last updated: 2012.5.23
// Description: This file contains pre-defined colors and color-manipulation macros.
#ifndef(Colors_Inc_Temp)
#declare Colors_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including colors.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.5
Many pre-defined colors for use in scene files.
*/
// COLORS:
#declare Red = rgb <1, 0, 0>;
#declare Green = rgb <0, 1, 0>;
#declare Blue = rgb <0, 0, 1>;
#declare Yellow = rgb <1,1,0>;
#declare Cyan = rgb <0, 1, 1>;
#declare Magenta = rgb <1, 0, 1>;
#declare Clear = rgbf 1;
#declare White = rgb 1;
#declare Black = rgb 0;
// These grays are useful for fine-tuning lighting color values
// and for other areas where subtle variations of grays are needed.
// PERCENTAGE GRAYS:
#declare Gray05 = White*0.05;
#declare Gray10 = White*0.10;
#declare Gray15 = White*0.15;
#declare Gray20 = White*0.20;
#declare Gray25 = White*0.25;
#declare Gray30 = White*0.30;
#declare Gray35 = White*0.35;
#declare Gray40 = White*0.40;
#declare Gray45 = White*0.45;
#declare Gray50 = White*0.50;
#declare Gray55 = White*0.55;
#declare Gray60 = White*0.60;
#declare Gray65 = White*0.65;
#declare Gray70 = White*0.70;
#declare Gray75 = White*0.75;
#declare Gray80 = White*0.80;
#declare Gray85 = White*0.85;
#declare Gray90 = White*0.90;
#declare Gray95 = White*0.95;
// OTHER GRAYS
#declare DimGray = color red 0.329412 green 0.329412 blue 0.329412;
#declare DimGrey = color red 0.329412 green 0.329412 blue 0.329412;
#declare Gray = color red 0.752941 green 0.752941 blue 0.752941;
#declare Grey = color red 0.752941 green 0.752941 blue 0.752941;
#declare LightGray = color red 0.658824 green 0.658824 blue 0.658824;
#declare LightGrey = color red 0.658824 green 0.658824 blue 0.658824;
#declare VLightGray = color red 0.80 green 0.80 blue 0.80;
#declare VLightGrey = color red 0.80 green 0.80 blue 0.80;
#declare Aquamarine = color red 0.439216 green 0.858824 blue 0.576471;
#declare BlueViolet = color red 0.62352 green 0.372549 blue 0.623529;
#declare Brown = color red 0.647059 green 0.164706 blue 0.164706;
#declare CadetBlue = color red 0.372549 green 0.623529 blue 0.623529;
#declare Coral = color red 1.0 green 0.498039 blue 0.0;
#declare CornflowerBlue = color red 0.258824 green 0.258824 blue 0.435294;
#declare DarkGreen = color red 0.184314 green 0.309804 blue 0.184314;
#declare DarkOliveGreen = color red 0.309804 green 0.309804 blue 0.184314;
#declare DarkOrchid = color red 0.6 green 0.196078 blue 0.8;
#declare DarkSlateBlue = color red 0.119608 green 0.137255 blue 0.556863;
#declare DarkSlateGray = color red 0.184314 green 0.309804 blue 0.309804;
#declare DarkSlateGrey = color red 0.184314 green 0.309804 blue 0.309804;
#declare DarkTurquoise = color red 0.439216 green 0.576471 blue 0.858824;
#declare Firebrick = color red 0.556863 green 0.137255 blue 0.137255;
#declare ForestGreen = color red 0.137255 green 0.556863 blue 0.137255;
#declare Gold = color red 0.8 green 0.498039 blue 0.196078;
#declare Goldenrod = color red 0.858824 green 0.858824 blue 0.439216;
#declare GreenYellow = color red 0.576471 green 0.858824 blue 0.439216;
#declare IndianRed = color red 0.309804 green 0.184314 blue 0.184314;
#declare Khaki = color red 0.623529 green 0.623529 blue 0.372549;
#declare LightBlue = color red 0.74902 green 0.847059 blue 0.847059;
#declare LightSteelBlue = color red 0.560784 green 0.560784 blue 0.737255;
#declare LimeGreen = color red 0.196078 green 0.8 blue 0.196078;
#declare Maroon = color red 0.556863 green 0.137255 blue 0.419608;
#declare MediumAquamarine = color red 0.196078 green 0.8 blue 0.6;
#declare MediumBlue = color red 0.196078 green 0.196078 blue 0.8;
#declare MediumForestGreen = color red 0.419608 green 0.556863 blue 0.137255;
#declare MediumGoldenrod = color red 0.917647 green 0.917647 blue 0.678431;
#declare MediumOrchid = color red 0.576471 green 0.439216 blue 0.858824;
#declare MediumSeaGreen = color red 0.258824 green 0.435294 blue 0.258824;
#declare MediumSlateBlue = color red 0.498039 blue 1.0;
#declare MediumSpringGreen = color red 0.498039 green 1.0;
#declare MediumTurquoise = color red 0.439216 green 0.858824 blue 0.858824;
#declare MediumVioletRed = color red 0.858824 green 0.439216 blue 0.576471;
#declare MidnightBlue = color red 0.184314 green 0.184314 blue 0.309804;
#declare Navy = color red 0.137255 green 0.137255 blue 0.556863;
#declare NavyBlue = color red 0.137255 green 0.137255 blue 0.556863;
#declare Orange = color red 1 green 0.5 blue 0.0;
#declare OrangeRed = color red 1.0 green 0.25;
#declare Orchid = color red 0.858824 green 0.439216 blue 0.858824;
#declare PaleGreen = color red 0.560784 green 0.737255 blue 0.560784;
#declare Pink = color red 0.737255 green 0.560784 blue 0.560784;
#declare Plum = color red 0.917647 green 0.678431 blue 0.917647;
#declare Salmon = color red 0.435294 green 0.258824 blue 0.258824;
#declare SeaGreen = color red 0.137255 green 0.556863 blue 0.419608;
#declare Sienna = color red 0.556863 green 0.419608 blue 0.137255;
#declare SkyBlue = color red 0.196078 green 0.6 blue 0.8;
#declare SlateBlue = color green 0.498039 blue 1.0;
#declare SpringGreen = color green 1.0 blue 0.498039;
#declare SteelBlue = color red 0.137255 green 0.419608 blue 0.556863;
#declare Tan = color red 0.858824 green 0.576471 blue 0.439216;
#declare Thistle = color red 0.847059 green 0.74902 blue 0.847059;
#declare Turquoise = color red 0.678431 green 0.917647 blue 0.917647;
#declare Violet = color red 0.309804 green 0.184314 blue 0.309804;
#declare VioletRed = color red 0.8 green 0.196078 blue 0.6;
#declare Wheat = color red 0.847059 green 0.847059 blue 0.74902;
#declare YellowGreen = color red 0.6 green 0.8 blue 0.196078;
#declare SummerSky = color red 0.22 green 0.69 blue 0.87;
#declare RichBlue = color red 0.35 green 0.35 blue 0.67;
#declare Brass = color red 0.71 green 0.65 blue 0.26;
#declare Copper = color red 0.72 green 0.45 blue 0.20;
#declare Bronze = color red 0.55 green 0.47 blue 0.14;
#declare Bronze2 = color red 0.65 green 0.49 blue 0.24;
#declare Silver = color red 0.90 green 0.91 blue 0.98;
#declare BrightGold = color red 0.85 green 0.85 blue 0.10;
#declare OldGold = color red 0.81 green 0.71 blue 0.23;
#declare Feldspar = color red 0.82 green 0.57 blue 0.46;
#declare Quartz = color red 0.85 green 0.85 blue 0.95;
#declare Mica = color Black; // needed in textures.inc
#declare NeonPink = color red 1.00 green 0.43 blue 0.78;
#declare DarkPurple = color red 0.53 green 0.12 blue 0.47;
#declare NeonBlue = color red 0.30 green 0.30 blue 1.00;
#declare CoolCopper = color red 0.85 green 0.53 blue 0.10;
#declare MandarinOrange = color red 0.89 green 0.47 blue 0.20;
#declare LightWood = color red 0.91 green 0.76 blue 0.65;
#declare MediumWood = color red 0.65 green 0.50 blue 0.39;
#declare DarkWood = color red 0.52 green 0.37 blue 0.26;
#declare SpicyPink = color red 1.00 green 0.11 blue 0.68;
#declare SemiSweetChoc = color red 0.42 green 0.26 blue 0.15;
#declare BakersChoc = color red 0.36 green 0.20 blue 0.09;
#declare Flesh = color red 0.96 green 0.80 blue 0.69;
#declare NewTan = color red 0.92 green 0.78 blue 0.62;
#declare NewMidnightBlue = color red 0.00 green 0.00 blue 0.61;
#declare VeryDarkBrown = color red 0.35 green 0.16 blue 0.14;
#declare DarkBrown = color red 0.36 green 0.25 blue 0.20;
#declare DarkTan = color red 0.59 green 0.41 blue 0.31;
#declare GreenCopper = color red 0.32 green 0.49 blue 0.46;
#declare DkGreenCopper = color red 0.29 green 0.46 blue 0.43;
#declare DustyRose = color red 0.52 green 0.39 blue 0.39;
#declare HuntersGreen = color red 0.13 green 0.37 blue 0.31;
#declare Scarlet = color red 0.55 green 0.09 blue 0.09;
#declare Med_Purple = color red 0.73 green 0.16 blue 0.96;
#declare Light_Purple = color red 0.87 green 0.58 blue 0.98;
#declare Very_Light_Purple = color red 0.94 green 0.81 blue 0.99;
// Color manipulation macros
// Takes Hue value as input, returns RGB vector.
#macro CH2RGB (HH)
#local H = mod(HH, 360);
#local H = (H < 0 ? H+360 : H);
#switch (H)
#range (0, 120)
#local R = (120- H) / 60;
#local G = ( H- 0) / 60;
#local B = 0;
#break
#range (120, 240)
#local R = 0;
#local G = (240- H) / 60;
#local B = ( H-120) / 60;
#break
#range (240, 360)
#local R = ( H-240) / 60;
#local G = 0;
#local B = (360- H) / 60;
#break
#end
<min(R,1), min(G,1), min(B,1)>
#end
// Takes RGB vector, Max component, and Span as input,
// returns Hue value.
#macro CRGB2H (RGB, Max, Span)
#local H = 0;
#local R = RGB.red;
#local G = RGB.green;
#local B = RGB.blue;
#if (Span>0)
#local H = (
+ (R = Max & G != Max ? 0 + (G - B)/Span : 0)
+ (G = Max & B != Max ? 2 + (B - R)/Span : 0)
+ (B = Max & R != Max ? 4 + (R - G)/Span : 0)
)*60;
#end
H
#end
// Converts a color in HSL color space to a color in RGB color space.
// Input: < Hue, Saturation, Lightness, Filter, Transmit >
// Output: < Red, Green, Blue, Filter, Transmit >
#macro CHSL2RGB(Color)
#local HSLFT = color Color;
#local H = (HSLFT.red);
#local S = (HSLFT.green);
#local L = (HSLFT.blue);
#local SatRGB = CH2RGB(H);
#local Col = 2*S*SatRGB + (1-S)*<1,1,1>;
#if (L<0.5)
#local RGB = L*Col;
#else
#local RGB = (1-L)*Col + (2*L-1)*<1,1,1>;
#end
<RGB.red,RGB.green,RGB.blue,(HSLFT.filter),(HSLFT.transmit)>
#end
// Converts a color in RGB color space to a color in HSL color space.
// Input: < Red, Green, Blue, Filter, Transmit >
// Output: < Hue, Saturation, Lightness, Filter, Transmit >
#macro CRGB2HSL(Color)
#local RGBFT = color Color;
#local R = (RGBFT.red);
#local G = (RGBFT.green);
#local B = (RGBFT.blue);
#local Min = min(R,min(G,B));
#local Max = max(R,max(G,B));
#local Span = Max-Min;
#local L = (Min+Max)/2;
#local S = 0;
#if( L!=0 & L!=1 )
#local S = Span / ( L<0.5 ? (L*2) : (2-L*2) );
#end
#local H = CRGB2H (<R,G,B>, Max, Span);
<H,S,L,(RGBFT.filter),(RGBFT.transmit)>
#end
// Converts a color in HSV color space to a color in RGB color space.
// Input: < Hue, Saturation, Value, Filter, Transmit >
// Output: < Red, Green, Blue, Filter, Transmit >
#macro CHSV2RGB(Color)
#local HSVFT = color Color;
#local H = (HSVFT.red);
#local S = (HSVFT.green);
#local V = (HSVFT.blue);
#local SatRGB = CH2RGB(H);
#local RGB = ( ((1-S)*<1,1,1> + S*SatRGB) * V );
<RGB.red,RGB.green,RGB.blue,(HSVFT.filter),(HSVFT.transmit)>
#end
// Converts a color in RGB color space to a color in HSV color space.
// Input: < Red, Green, Blue, Filter, Transmit >
// Output: < Hue, Saturation, Value, Filter, Transmit >
#macro CRGB2HSV(Color)
#local RGBFT = color Color;
#local R = (RGBFT.red);
#local G = (RGBFT.green);
#local B = (RGBFT.blue);
#local Min = min(R,min(G,B));
#local Max = max(R,max(G,B));
#local Span = Max-Min;
#local H = CRGB2H (<R,G,B>, Max, Span);
#local S = 0; #if (Max!=0) #local S = Span/Max; #end
<H,S,Max,(RGBFT.filter),(RGBFT.transmit)>
#end
#version Colors_Inc_Temp;
#end

View file

@ -0,0 +1,119 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: consts.inc
// Last updated: 2001.8.12
// Description: Various constants and alias definitions.
#ifndef(Consts_Inc_Temp)
#declare Consts_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including consts.inc\n"
#end
#declare e = exp(1);//2.71828182845904523536028747135266249775724709369996;
#declare o = < 0, 0, 0>;
#declare xy = < 1, 1, 0>;
#declare yz = < 0, 1, 1>;
#declare xz = < 1, 0, 1>;
// MAP_TYPE CONSTANTS
#declare Plane_Map = 0;
#declare Sphere_Map = 1;
#declare Cylinder_Map = 2;
#declare Torus_Map = 5;
// INTERPOLATION TYPE CONSTANTS
#declare Bi = 2;
#declare Norm = 4;
// FOG TYPE CONSTANTS
#declare Uniform_Fog = 1;
#declare Ground_Fog = 2;
// FOCAL BLUR HEXGRID CONSTANTS
#declare Hex_Blur1 = 7;
#declare Hex_Blur2 = 19;
#declare Hex_Blur3 = 37;
// Dispersion amount constants
//Glass: 1.01 - 1.05
#declare Quartz_Glass_Dispersion = 1.012;
#declare Water_Dispersion = 1.007;
#declare Diamond_Dispersion = 1.035;
#declare Sapphire_Dispersion = 1.015;
// INDEX OF REFRACTION CONSTANTS
// Defines a few Index of Refractions for various materials for sodium light.
// Source: College Physics by Arthur L. Kimball, PhD. 4th Edition (1923)
// ---------------------------
#declare Flint_Glass_Ior = 1.71;
#declare Crown_Glass_Ior = 1.51;
#declare Diamond_Ior = 2.47;
#declare Water_Ior = 1.33;
#declare Air_Ior = 1.000292;
#declare Ice_Ior = 1.31;
#declare Fluorite_Ior = 1.434;
#declare Plexiglas_Ior = 1.5;
#declare Gypsum_Ior =1.525;
#declare Salt_Ior = 1.544;
#declare Quartz_Ior = 1.550;
#declare Citrine_Ior = 1.550;
#declare Amethyst_Ior = 1.550;
#declare Beryl_Ior = 1.575;
#declare Aquamarine_Ior = 1.575;
#declare Emerald_Ior = 1.575;
#declare Topaz_Ior = 1.620;
#declare Apatite_Ior = 1.635;
#declare Tourmaline_Ior = 1.650;
#declare Corundum_Ior = 1.765;
#declare Ruby_Ior = 1.765;
#declare Sapphire_Ior = 1.765;
#declare Quartz_Glass_Ior = 1.458;
#declare Flint_Glass_Heavy_Ior = 1.8;
#declare Flint_Glass_Medium_Ior = 1.63;
#declare Flint_Glass_Light_Ior = 1.6;
// POV-Ray 3.1 NOTE: These are included for backwards compatibility only.
// Use the camera "angle" parameter for version 3.0 and above.
//
// Direction Vectors for various Field of View angles.
// The formula used to calculate these is: FoV = 0.5 / tan(angle/2)
// Based on the height, (the UP vector), not width or diagonal.
// Useage: direction <0, 0, FoV_45>
// (You will also need to adjust the location vector if you change FoV and
// want to keep the same visual distance from your scene.)
#declare FoV_15 = 7.595981;
#declare FoV_30 = 3.732166;
#declare FoV_45 = 2.414293;
#declare FoV_60 = 1.732113;
#declare FoV_75 = 1.303277;
#declare FoV_90 = 1.000046;
#declare FoV_105 = 0.767370;
#declare FoV_120 = 0.577391;
#declare FoV_135 = 0.414254;
#declare FoV_150 = 0.267991;
#declare FoV_165 = 0.131696;
// ATMOSPHERE TYPES
#declare ISOTROPIC_SCATTERING = 1;
#declare MIE_HAZY_SCATTERING = 2;
#declare MIE_MURKY_SCATTERING = 3;
#declare RAYLEIGH_SCATTERING = 4;
#declare HENYEY_GREENSTEIN_SCATTERING = 5;
#version Consts_Inc_Temp;
#end

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,47 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: debug.inc
// Last updated: 2002.5.31
// Description: This file contains various macros for debugging scene files.
#ifndef(DEBUG_MCR)
#declare DEBUG_MCR = true;
#declare DEBUG = yes;
#macro Debug_Inc_Stack()
#declare View_POV_Include_Stack = 1;
#end
#macro Set_Debug(Bool) #declare DEBUG = Bool; #end
//Just a simple debug message macro, only sends message if currently debugging.
#macro Debug_Message(Str)
#if(DEBUG = yes)
#debug Str
#end
#end
#macro Debug(Condition, Message)
#if(Condition)
#debug Message
#end
#end
#macro Warning(Condition, Message)
#if(Condition)
#warning Message
#end
#end
#macro Error(Condition, Message)
#if(Condition)
#error Message
#end
#end
#end

View file

@ -0,0 +1,46 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
#ifndef(Finish_Inc_Temp)
#declare Finish_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
# debug "including finish.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.1
Some basic finishes. Others may be defined in
specific .inc files (see metals.inc).
*/
// Dull creates a large, soft highlight on the object's surface
#declare Dull = finish {specular 0.5 roughness 0.15}
// Shiny creates a small, tight highlight on the object's surface
#declare Shiny = finish {specular 1 roughness 0.001}
// Phong highlights are less "realistic" than specular, but useful
// for different effects.
// Dull creates a large, soft highlight on the object's surface
#declare Phong_Dull = finish {phong 0.5 phong_size 1}
// Shiny creates a small, tight highlight on the object's surface
#declare Phong_Shiny = finish {phong 1 phong_size 200}
// Very shiny with very tight highlights and a fair amount of reflection
#declare Glossy = finish {specular 1 roughness 0.0001 reflection 0.13}
#declare Phong_Glossy = finish {phong 1 phong_size 300 reflection 0.13}
// Luminous for shadowless skies and light_sources.
#declare Luminous = finish {ambient 1 diffuse 0}
// a perfectly mirrored finish with no highlights
#declare Mirror = finish {ambient 0 diffuse 0 reflection 1}
#version Finish_Inc_Temp;
#end

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View file

@ -0,0 +1,689 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
#ifndef(Functions_Inc_Temp)
#declare Functions_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
# debug "including function.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.5
Many pre-defined functions for use in scene files.
*/
#declare f_algbr_cyl1 = function { internal(0) }
// Parameters: x, y, z
// Five extra parameters required:
// 1. Field Strength
// 2. Field Limit
// 3. SOR Switch
// 4. SOR Offset
// 5. SOR Angle
#declare f_algbr_cyl2 = function { internal(1) }
// Parameters: x, y, z
// Five extra parameters required:
// 1. Field Strength
// 2. Field Limit
// 3. SOR Switch
// 4. SOR Offset
// 5. SOR Angle
#declare f_algbr_cyl3 = function { internal(2) }
// Parameters: x, y, z
// Five extra parameters required:
// 1. Field Strength
// 2. Field Limit
// 3. SOR Switch
// 4. SOR Offset
// 5. SOR Angle
#declare f_algbr_cyl4 = function { internal(3) }
// Parameters: x, y, z
// Five extra parameters required:
// 1. Field Strength
// 2. Field Limit
// 3. SOR Switch
// 4. SOR Offset
// 5. SOR Angle
#declare f_bicorn = function { internal(4) }
// Parameters: x, y, z
// Two extra parameters required:
// 1. Field Strength
// 2. Scale. The surface is always the same shape.
// Changing this parameter has the same effect as adding a scale modifier.
// Setting the scale to 1 gives a surface with a radius of about 1 unit.
#declare f_bifolia = function { internal(5) }
// Parameters: x, y, z
// Two extra parameters required:
// 1. Field Strength
// 2. Scale. The mathematics of this surface suggest that the shape
// should be different for different values of this parameter.
// In practice the difference in shape is hard to spot.
// Setting the scale to 3 gives a surface with a radius of about 1 unit.
#declare f_blob = function { internal(6) }
// Parameters: x, y, z
// Five extra parameters required:
// 1. x distance between the two components
// 2. blob strength of component 1
// 3. inverse blob radius of component 1
// 4. blob strength of component 2
// 5.inverse blob radius of component 2
#declare f_blob2 = function { internal(7) }
// Parameters: x, y, z
//Four extra parameters required:
// 1. Separation. One blob component is at the origin
// and the other is this distance away on the x axis
// 2. inverse size. Increase this to decrease the size of the surface
// 3. blob strength
// 4. threshold. Setting this parameter to 1
// and the threshold to zero has exactly the same effect
// as setting this parameter to zero and the threshold to -1
#declare f_boy_surface = function { internal(8) }
// Parameters: x, y, z
// Two extra parameters required:
// 1. Field Strength
// 2. Scale. The surface is always the same shape.
// Changing this parameter has the same effect as adding a scale modifier
#declare f_comma = function { internal(9) }
// Parameters: x, y, z
// One extra parameter required:
// 1. scale
#declare f_cross_ellipsoids = function { internal(10) }
// Parameters: x, y, z
// Four extra paraameters required
// 1. eccentricity. When less than 1,
// the ellipsoids are oblate,
// when greater than 1 the ellipsoids are prolate,
// when zero the ellipsoids are spherical
// (and hence the whole surface is a sphere)
// 2. inverse size. Increase this to decrease the size of the surface
// 3. Diameter. Increase this to increase the size of the ellipsoids
// 4. threshold. Setting this parameter to 1 and the threshold to zero
// has exactly the same effect as setting this parameter to zero
// and the threshold to -1
#declare f_crossed_trough = function { internal(11) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_cubic_saddle = function { internal(12) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_cushion = function { internal(13) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_devils_curve = function { internal(14) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_devils_curve_2d = function { internal(15) }
// Parameters: x, y, z
// Six extra parameters required:
// 1. Field Strength
// 2. X factor
// 3. Y factor
// 4. SOR Switch
// 5. SOR Offset
// 6. SOR Angle
#declare f_dupin_cyclid = function { internal(16) }
// Parameters: x, y, z
// Six extra parameters required:
// 1. Field Strength
// 2. Major radius of torus
// 3. Minor radius of torus
// 4. X displacement of torus
// 5. Y displacement of torus
// 6. Radius of inversion
#declare f_ellipsoid = function { internal(17) }
// Parameters: x, y, z
// Three extra parameters required:
// 1. x scale (inverse)
// 2. y scale (inverse)
// 3. z scale (inverse)
#declare f_enneper = function { internal(18) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field strength
#declare f_flange_cover = function { internal(19) }
// Parameters: x, y, z
// Four extra parameters required:
// 1. Spikiness. Set this to very low values to increase the spikes.
// Set it to 1 and you get a sphere
// 2. inverse size. Increase this to decrease the size of the surface.
// (The other parameters also drastically affect the size,
// but this parameter has no other effects)
// 3. Flange. Increase this to increase the flanges that appear between the spikes. Set it to 1 for no flanges
// 4. threshold. Setting this parameter to 1 and the threshold to zero
// has exactly the same effect as setting this parameter to zero
// and the threshold to -1
#declare f_folium_surface = function { internal(20) }
// Parameters: x, y, z
// Three extra parameters required:
// 1. Field Strength
// 2. Neck width factor -
// the larger you set this,
// the narrower the neck where the paraboloid meets the plane
// 3. Divergence -
// the higher you set this value, the wider the paraboloid gets
#declare f_folium_surface_2d = function { internal(21) }
// Parameters: x, y, z
// Six extra parameters required:
// 1. Field Strength
// 2. Neck width factor - same as the 3d surface if you're revolving it around the Y axis
// 3. Divergence -
// same as the 3d surface if you're revolving it around the Y axis
// 4. SOR Switch
// 5. SOR Offset
// 6. SOR Angle
#declare f_glob = function { internal(22) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_heart = function { internal(23) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_helical_torus = function { internal(24) }
// Parameters: x, y, z
// Ten extra parameters required:
// 1.Major radius
// 2. Number of winding loops
// 3. Twistiness of winding.
// When zero, each winding loop is separate.
// When set to one, each loop twists into the next one.
// When set to two, each loop twists into the one after next
// 4. Fatness of winding?
// 5. threshold. Setting this parameter to 1 and the threshold to zero
// has s similar effect as setting this parameter to zero
// and the threshold to 1
// 6. Negative minor radius? Reducing this parameter
// increases the minor radius of the central torus.
// Increasing it can make the torus disappear
// and be replaced by a vertical column.
// The value at which the surface switches
// from one form to the other depends on several other parameters
// 7. Another fatness of winding control?
// 8. Groove period. Increase this for more grooves
// 9. Groove amplitude. Increase this for deeper grooves
// 10. Groove phase. Set this to zero for symmetrical grooves
#declare f_helix1 = function { internal(25) }
// Parameters: x, y, z
// Parameters: x, y, z
// Seven extra parameters required:
// 1. Number of helixes - e.g. 2 for a double helix
// 2. Period - is related to the number of turns per unit length
// 3. Minor radius
// 4. Major radius
// 5. Shape parameter. If this is greater than 1 then the tube becomes fatter in the y direction
// 6. Cross section type.
// 7. Cross section rotation angle (degrees). E.g. if you choose a square cross section and rotate it by 45 degrees you get a diamond cross section.
#declare f_helix2 = function { internal(26) }
// Parameters: x, y, z
// Seven extra parameters required:
// 1. Not used
// 2. Period - is related to the number of turns per unit length
// 3. Minor radius
// 4. Major radius
// 5. Not used
// 6. Cross section type.
// 7. Cross section rotation angle (degrees). E.g. if you choose a square cross section and rotate it by 45 degrees you get a diamond cross section.
#declare f_hex_x = function { internal(27) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Has no effect ??????????????????????????????
#declare f_hex_y = function { internal(28) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Has no effect ??????????????????????????????
#declare f_hetero_mf = function { internal(29) }
// Parameters: x, y, z
// Six extra parameters required:
// 1. H
// 2. lacunarity
// 3. octaves
// 4. offset
// 5. T
// 6. noise
#declare f_hunt_surface = function { internal(30) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_hyperbolic_torus = function { internal(31) }
// Parameters: x, y, z
// Three extra parameters required:
// 1. Field strength
// 2. Major radius: separation between the centers of the tubes at the closest point
// 3. Minor radius: thickness of the tubes at the closest point
#declare f_isect_ellipsoids = function { internal(32) }
// Parameters: x, y, z
// Four extra parameters required:
// 1. eccentricity. When less than 1, the ellipsoids are oblate,
// when greater than 1 the ellipsoids are prolate,
// when zero the ellipsoids are spherical
// (and hence the whole surface is a sphere)
// 2. inverse size. Increase this to decrease the size of the surface
// 3. Diameter. Increase this to increase the size of the ellipsoids
// 4. threshold. Setting this parameter to 1 and the threshold to zero
// has exactly the same effect as setting this parameter to zero
// and the threshold to -1
#declare f_kampyle_of_eudoxus = function { internal(33) }
// Parameters: x, y, z
// Three extra parameters required:
// 1. Field strength
// 2. Dimple: When zero, the two dimples punch right through
// and meet at the center. Non-zero values give less dimpling
// 3. Closeness: Higher values make the two planes become closer
#declare f_kampyle_of_eudoxus_2d = function { internal(34) }
// Parameters: x, y, z
// Six extra parameters required:
// 1. Field strength
// 2. Dimple: When zero, the two dimples punch right through and meet at the center. Non-zero values give less dimpling
// 3. loseness: Higher values make the two planes become closer
// 4. sor switch
// 5. sor offset
// 6. sor angle
#declare f_klein_bottle = function { internal(35) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_kummer_surface_v1 = function { internal(36) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_kummer_surface_v2 = function { internal(37) }
// Parameters: x, y, z
// Four extra parameters required:
// 1. Field strength
// 2. Rod width (negative): Setting this parameter
// to larger negative values increases the diameter of the rods
// 3. Divergence (negative): Setting this number to -1
// causes the rods to become approximately cylindrical.
// Larger negative values cause the rods to become fatter further from the origin.
// Smaller negative numbers cause the rods to become narrower away from the origin,
// and have a finite length
// 4. Influences the length of half of the rods.
// Changing the sign affects the other half of the rods.
// 0 has no effect
#declare f_lemniscate_of_gerono = function { internal(38) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_lemniscate_of_gerono_2d = function { internal(39) }
// Parameters: x, y, z
// Six extra parameters required:
// 1. Field strength
// 2. size: increasing this makes the 2d curve larger and less rounded
// 3. width: increasing this makes the 2d curve fatter
// 4. sor switch
// 5. sor offset
// 6. sor angle
#declare f_mesh1 = function { internal(40) }
// Parameters: x, y, z
// Five extra Parameters required:
// 1. Distance between neighboring threads in the x direction
// 2. Distance between neighboring threads in the z direction
// 3. Relative thickness in the x and z directions
// 4. Amplitude of the weaving effect. Set to zero for a flat grid
// 5. Relative thickness in the y direction
#declare f_mitre = function { internal(41) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_nodal_cubic = function { internal(42) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_odd = function { internal(43) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_ovals_of_cassini = function { internal(44) }
// Parameters: x, y, z
// Four parameters required:
// 1. Field Strength
// 2. Major radius - like the major radius of a torus
// 3. Filling. Set this to zero, and you get a torus. Set this to a higher value and the hole in the middle starts to heal up. Set it even higher and you get an ellipsoid with a dimple
// 4. Thickness. The higher you set this value, the plumper is the result.
#declare f_paraboloid = function { internal(45) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_parabolic_torus = function { internal(46) }
// Parameters: x, y, z
// Tree extra parameters required:
// 1. Field Strength
// 2. Major radius
// 3. Minor radius
#declare f_ph = function { internal(47) }
// Parameters: x, y, z
// no extra parameters required
#declare f_pillow = function { internal(48) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_piriform = function { internal(49) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_piriform_2d = function { internal(50) }
// Parameters: x, y, z
// Seven extra parameters required:
// 1. Field strength
// 2. size factor 1: increasing this makes the curve larger
// 3. size factor 2: making this less negative makes the curve larger but also thinner
// 4. Fatness: increasing this makes the curve fatter
// 5. sor switch
// 6. sor offset
// 7. sor angle
#declare f_poly4 = function { internal(51) }
// Parameters: x, y, z
// Five extra parameters required:
// 1. Constant
// 2. y coefficient
// 3. Y2 coefficient
// 4. Y3 coefficient
// 5. Y4 coefficient
#declare f_polytubes = function { internal(52) }
// Parameters: x, y, z
// Six extra parameters required:
// 1. Number of tubes
// 2. Constant
// 3. y coefficient
// 4. Y2 coefficient
// 5. Y3 coefficient
// 6. Y4 coefficient
#declare f_quantum = function { internal(53) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Has no effect ??????????????????????????????
#declare f_quartic_paraboloid = function { internal(54) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_quartic_saddle = function { internal(55) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_quartic_cylinder = function { internal(56) }
// Parameters: x, y, z
// Three extra parameters required:
// 1. Field strength
// 2. Diameter of the "egg"
// 3. Controls the width of the tube and the vertical scale of the "egg"
#declare f_r = function { internal(57) }
// Parameters: x, y, z
// no extra parameters required
#declare f_ridge = function { internal(58) }
// Parameters: x, y, z
// Six extra parameters required:
// 1.lambda
// 2. octaves
// 3. omega
// 4. offset
// 5. Ridge
// 6. noise
#declare f_ridged_mf = function { internal(59) }
// Parameters: x, y, z
// Six extra parameters required:
// 1. H
// 2. Lacunarity
// 3. octaves
// 4. offset
// 5. Gain
// 6. noise
#declare f_rounded_box = function { internal(60) }
// Parameters: x, y, z, P0, P1, P2, P3
// Four extra parameters required:
// 1. Radius of curvature.
// Zero gives square corners,
// 0.1 gives corners that match "sphere {0,0.1}"
// 2. scale x
// 3. scale y
// 4. scale z
#declare f_sphere = function { internal(61) }
// Parameters: x, y, z
//One extra parameter required:
// 1. radius of sphere
#declare f_spikes = function { internal(62) }
// Parameters: x, y, z
// Five extra parameters required:
// 1. Spikiness. Set this to very low values to increase the spikes.
// Set it to 1 and you get a sphere
// 2. Hollowness. Increasing this causes the sides to bend in more
// 3. size. Increasing this increases the size of the object
// 4. Roundness. This parameter has a subtle effect on the roundness of the spikes
// 5. Fatness. Increasing this makes the spikes fatter
#declare f_spikes_2d = function { internal(63) }
// Parameters: x, y, z
// Four extra parameters required:
// 1. Height of central spike
// 2. frequency of spikes in the x direction
// 3. frequency of spikes in the z direction
// 4. Rate at which the spikes reduce as you move away from the center
#declare f_spiral = function { internal(64) }
// Parameters: x, y, z
// Six extra parameters required:
// 1. Distance between windings: setting this to 0.3 means that the spiral is 0.3 pov units further from the origin each time it completes one whole turn
// 2. Thickness
// 3. Outer diameter of the spiral. The surface behaves as if it is contained_by a sphere of this diameter
// 4. Not used
// 5. Not used
// 6. Cross section type
#declare f_steiners_roman = function { internal(65) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_strophoid = function { internal(66) }
// Parameters: x, y, z
// Four extra parameters required:
// 1. Field strength
// 2. size of bulb. Larger values give larger bulbs.
// Negative values give a bulb on the other side of the plane
// 3. Sharpness. When zero, the bulb is like a sphere that just touches the plane.
// When positive, there is a crossover point.
// When negative the bulb simply bulges out of the plane like a pimple
// 4. Fatness. Higher values make the top end of the bulb fatter
#declare f_strophoid_2d = function { internal(67) }
// Parameters: x, y, z
// Seven extra parameters required:
// 1. Field strength
// 2. size of bulb. Larger values give larger bulbs.
// Negative values give a bulb on the other side of the plane
// 3. Sharpness. When zero, the bulb is like a sphere that just touches the plane.
// When positive, there is a crossover point.
// When negative the bulb simply bulges out of the plane like a pimple
// 4. Fatness. Higher values make the top end of the bulb fatter
// 5. sor switch
// 6. sor offset
// 7. sor angle
#declare f_superellipsoid = function { internal(68) }
// Parameters: x, y, z
// two extra parameters required:
// 1. NW
// 2. SW
#declare f_th = function { internal(69) }
// Parameters: x, y, z
// no extra parameters required
#declare f_torus = function { internal(70) }
// Parameters: x, y, z
// two extra parameters required:
// 1. Major radius
// 2. Minor radius
#declare f_torus2 = function { internal(71) }
// Parameters: x, y, z
// Three extra parameters required:
// 1. Field strength
// 2. Major radius
// 3. Minor radius
#declare f_torus_gumdrop = function { internal(72) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_umbrella = function { internal(73) }
// Parameters: x, y, z
// One extra parameter required:
// 1. Field Strength
#declare f_witch_of_agnesi = function { internal(74) }
// Parameters: x, y, z
// Two extra parameters required:
// 1. Field Strength
// 2. Controls the width of the spike.
// The height of the spike is always about 1 unit
#declare f_witch_of_agnesi_2d = function { internal(75) }
// Parameters: x, y, z
// Six extra parameters required:
// 1. Field strength
// 2. Controls the size of the spike
// 3. Controls the height of the spike
// 4. sor switch
// 5. sor offset
// 6. sor angle
#declare f_noise3d = function { internal(76) }
// Parameters: x, y, z
//Noise in the range [-1, 1]
#declare f_snoise3d = function {2*f_noise3d(x, y, z) - 1}
// Parameters: x, y, z
#declare f_noise_generator = function { internal(78) }
// Parameters: x, y, z
// One extra parameter required:
// 1. noise_generator number
#macro eval_pigment(pigm, vec)
#local fn = function { pigment { pigm } }
#local result = (fn(vec.x, vec.y, vec.z));
result
#end
// Isosurface pattern functions
// Some of these are not implemented because they require special
// parameters that must be specified in the definition. For this
// reason, you probably would want to define your own versions of
// these functions.
#declare f_agate = function {pattern {agate}}
// average not implemented
#declare f_boxed = function {pattern {boxed}}
#declare f_bozo = function {f_noise3d(x, y, z)}
#declare f_brick = function {pattern {brick}}
#declare f_bumps = function {f_noise3d(x, y, z)}
#declare f_checker = function {pattern {checker}}
#declare f_crackle = function {pattern {crackle}}
#declare f_cylindrical = function {pattern {cylindrical}}
// density_file not implemented
#declare f_dents = function {pow(f_noise3d(x, y, z), 3)}
#declare f_gradientX = function {pattern {gradient x}}
#declare f_gradientY = function {pattern {gradient y}}
#declare f_gradientZ = function {pattern {gradient z}}
#declare f_granite = function {pattern {granite}}
// image_pattern not implemented
#declare f_hexagon = function {pigment {hexagon color rgb 0, color rgb 0.5, color rgb 1}}
#declare f_leopard = function {pattern {leopard}}
//only the basic mandel pattern is implemented, its variants and
//the other fractal patterns are not implemented.
#declare f_mandel = function {pattern {mandel 25}}
#declare f_marble = function {pattern {marble}}
// object not implemented
#declare f_onion = function {pattern {onion}}
// pigment_pattern not implemented
#declare f_planar = function {pattern {planar}}
// quilted not implemented
#declare f_radial = function {pattern {radial}}
#declare f_ripples = function {pattern {ripples}}
#declare f_spherical = function {pattern {spherical}}
#declare f_spiral1 = function {pattern {spiral1 2}}
#declare f_spiral2 = function {pattern {spiral2 2}}
#declare f_spotted = function {f_noise3d(x, y, z)}
#declare f_waves = function {pattern {waves}}
#declare f_wood = function {pattern {wood}}
#declare f_wrinkles = function {pattern {wrinkles}}
// Waveform functions
#declare f_sine_wave = function {sin(x*z*pi)*y}
// f_sine_wave(val, amplitude, frequency)
#declare f_scallop_wave = function {abs(sin(x*z*pi)*y)}
// f_scallop_wave(val, amplitude, frequency)
#version Functions_Inc_Temp;
#end//functions.inc

View file

@ -0,0 +1,332 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: glass.inc
// Last updated: 2001.8.19
// Author: Christoph Hormann
// Description: Glass materials using new POV 3.5 features.
//
// Upated: 07Aug2008 (jh)
// Use these pigments, finishes and interiors to make a glass "material"
// Converted glass_old textures to materials.
// See glass_old.inc for examples
#ifndef(Glass_Inc_Temp)
#declare Glass_Inc_Temp=version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including glass.inc\n"
#end
#include "glass_old.inc"
#include "consts.inc"
// #### colors with transparency for use in pigment ####
// ------- colors derived from old glass.inc include file
#declare Col_Glass_Old=color rgbf <0.8, 0.9, 0.85, 0.85>;
#declare Col_Glass_Winebottle=color rgbf <0.4, 0.72, 0.4, 0.6>;
#declare Col_Glass_Beerbottle=color rgbf <0.7, 0.5, 0.1, 0.6>;
#declare Col_Glass_Ruby=color rgbf <0.9, 0.1, 0.2, 0.8>;
#declare Col_Glass_Green=color rgbf <0.8, 1, 0.95, 0.9>;
#declare Col_Glass_Dark_Green=color rgbf <0.1, 0.7, 0.8, 0.8>;
#declare Col_Glass_Yellow=color rgbf <0.8, 0.8, 0.2, 0.8>;
#declare Col_Glass_Orange=color rgbf <1.0, 0.5, 0.0, 0.8>;
#declare Col_Glass_Vicksbottle=color rgbf <0.1, 0.15, 0.5, 0.9>;
// ------- additional colors
#declare Col_Glass_Clear=color rgbf <1.0, 1.0, 1.0, 1.0>;
#declare Col_Glass_General=color rgbf <0.97, 0.99, 0.98, 0.9>;
#declare Col_Glass_Bluish=color rgbf <0.90, 0.94, 1.0, 0.8>;
// #### colors without transparency (for fade_color) ####
// ------- colors derived from old glass.inc include file
#declare Col_Winebottle=color rgb <0.4, 0.72, 0.4>;
#declare Col_Beerbottle=color rgb <0.7, 0.5, 0.1>;
#declare Col_Ruby=color rgb <0.9, 0.1, 0.2>;
#declare Col_Green=color rgb <0.8, 1, 0.95>;
#declare Col_Dark_Green=color rgb <0.1, 0.7, 0.8>;
#declare Col_Yellow=color rgb <0.8, 0.8, 0.2>;
#declare Col_Orange=color rgb <1.0, 0.5, 0.0>;
#declare Col_Vicksbottle=color rgb <0.1, 0.15, 0.5>;
// ------- additional colors
#declare Col_Red_01=color rgb <0.85, 0.10, 0.20>;
#declare Col_Red_02=color rgb <0.85, 0.35, 0.10>;
#declare Col_Red_03=color rgb <0.75, 0.20, 0.25>;
#declare Col_Red_04=color rgb <0.50, 0.10, 0.10>;
#declare Col_Green_01=color rgb <0.10, 0.85, 0.20>;
#declare Col_Green_02=color rgb <0.35, 0.85, 0.10>;
#declare Col_Green_03=color rgb <0.20, 0.75, 0.25>;
#declare Col_Green_04=color rgb <0.10, 0.50, 0.10>;
#declare Col_Blue_01=color rgb <0.35, 0.42, 0.85>;
#declare Col_Blue_02=color rgb <0.35, 0.65, 0.85>;
#declare Col_Blue_03=color rgb <0.35, 0.40, 0.75>;
#declare Col_Blue_04=color rgb <0.10, 0.10, 0.50>;
#declare Col_Yellow_01=color rgb <0.85, 0.85, 0.20>;
#declare Col_Yellow_02=color rgb <0.75, 0.78, 0.10>;
#declare Col_Yellow_03=color rgb <0.78, 0.75, 0.10>;
#declare Col_Yellow_04=color rgb <0.50, 0.50, 0.10>;
// ------- colors of common minerals
#declare Col_Amethyst_01=color rgb<0.4392, 0.1765, 0.3137>;
#declare Col_Amethyst_02=color rgb<0.5843, 0.3686, 0.4941>;
#declare Col_Amethyst_03=color rgb<0.6980, 0.5059, 0.6157>;
#declare Col_Amethyst_04=color rgb<0.9059, 0.7176, 0.8471>;
#declare Col_Amethyst_05=color rgb<0.8902, 0.4549, 0.7059>;
#declare Col_Amethyst_06=color rgb<0.4980, 0.2902, 0.4235>;
#declare Col_Apatite_01=color rgb<0.0549, 0.3451, 0.4314>;
#declare Col_Apatite_02=color rgb<0.2941, 0.5765, 0.5647>;
#declare Col_Apatite_03=color rgb<0.5176, 0.7333, 0.7020>;
#declare Col_Apatite_04=color rgb<0.3412, 0.5961, 0.4118>;
#declare Col_Apatite_05=color rgb<0.3647, 0.8196, 0.7451>;
#declare Col_Aquamarine_01=color rgb<0.5333, 0.6157, 0.6196>;
#declare Col_Aquamarine_02=color rgb<0.6627, 0.7020, 0.7255>;
#declare Col_Aquamarine_03=color rgb<0.7412, 0.8235, 0.8431>;
#declare Col_Aquamarine_04=color rgb<0.6039, 0.7216, 0.7882>;
#declare Col_Aquamarine_05=color rgb<0.5804, 0.7098, 0.7765>;
#declare Col_Aquamarine_06=color rgb<0.7255, 0.8510, 0.9176>;
#declare Col_Azurite_01=color rgb<0.2863, 0.3569, 0.7216>;
#declare Col_Azurite_02=color rgb<0.5333, 0.6549, 0.9059>;
#declare Col_Azurite_03=color rgb<0.3020, 0.3529, 0.6314>;
#declare Col_Azurite_04=color rgb<0.1137, 0.1569, 0.4471>;
#declare Col_Citrine_01=color rgb<0.3020, 0.2314, 0.1529>;
#declare Col_Citrine_02=color rgb<0.4667, 0.3804, 0.2980>;
#declare Col_Citrine_03=color rgb<0.5020, 0.4118, 0.3529>;
#declare Col_Emerald_01=color rgb<0.0471, 0.4000, 0.2549>;
#declare Col_Emerald_02=color rgb<0.2157, 0.6353, 0.4902>;
#declare Col_Emerald_03=color rgb<0.3216, 0.6627, 0.5961>;
#declare Col_Emerald_04=color rgb<0.1843, 0.4549, 0.3843>;
#declare Col_Emerald_05=color rgb<0.2863, 0.6431, 0.4431>;
#declare Col_Emerald_06=color rgb<0.2353, 0.5922, 0.3804>;
#declare Col_Emerald_07=color rgb<0.4392, 0.7725, 0.5804>;
#declare Col_Fluorite_01=color rgb<0.5098, 0.3294, 0.4039>;
#declare Col_Fluorite_02=color rgb<0.3020, 0.1569, 0.2431>;
#declare Col_Fluorite_03=color rgb<0.5098, 0.2902, 0.2745>;
#declare Col_Fluorite_04=color rgb<0.5373, 0.3098, 0.0902>;
#declare Col_Fluorite_05=color rgb<0.7020, 0.5529, 0.7294>;
#declare Col_Fluorite_06=color rgb<0.4745, 0.2627, 0.4824>;
#declare Col_Fluorite_07=color rgb<0.2314, 0.0784, 0.2902>;
#declare Col_Fluorite_08=color rgb<0.5804, 0.6235, 0.6745>;
#declare Col_Fluorite_09=color rgb<0.4392, 0.4745, 0.5333>;
#declare Col_Gypsum_01=color rgb<0.9020, 0.8824, 0.7882>;
#declare Col_Gypsum_02=color rgb<0.8039, 0.8667, 0.8157>;
#declare Col_Gypsum_03=color rgb<0.7098, 0.6863, 0.6000>;
#declare Col_Gypsum_04=color rgb<0.8275, 0.8078, 0.5765>;
#declare Col_Gypsum_05=color rgb<0.8196, 0.7373, 0.5294>;
#declare Col_Gypsum_06=color rgb<0.5961, 0.4941, 0.3020>;
#declare Col_Ruby_01=color rgb<0.4980, 0.0824, 0.2275>;
#declare Col_Ruby_02=color rgb<0.6235, 0.1490, 0.3137>;
#declare Col_Ruby_03=color rgb<0.7412, 0.3294, 0.4745>;
#declare Col_Ruby_04=color rgb<0.8039, 0.2039, 0.5569>;
#declare Col_Ruby_05=color rgb<0.5882, 0.1255, 0.4784>;
#declare Col_Sapphire_01=color rgb<0.2118, 0.3020, 0.4980>;
#declare Col_Sapphire_02=color rgb<0.0588, 0.2000, 0.5569>;
#declare Col_Sapphire_03=color rgb<0.0392, 0.2353, 0.5686>;
#declare Col_Topaz_01=color rgb<0.7333, 0.7451, 0.6980>;
#declare Col_Topaz_02=color rgb<0.5922, 0.6196, 0.5922>;
#declare Col_Topaz_03=color rgb<0.5922, 0.6157, 0.6510>;
#declare Col_Tourmaline_01=color rgb<0.3725, 0.4235, 0.2941>;
#declare Col_Tourmaline_02=color rgb<0.2745, 0.3490, 0.2235>;
#declare Col_Tourmaline_03=color rgb<0.2627, 0.2549, 0.1451>;
#declare Col_Tourmaline_04=color rgb<0.1333, 0.4706, 0.3412>;
#declare Col_Tourmaline_05=color rgb<0.0627, 0.2980, 0.2118>;
#declare Col_Tourmaline_06=color rgb<0.0196, 0.2706, 0.1961>;
#declare Col_Amber_01=color rgb<0.3725, 0.4235, 0.2941>;
#declare Col_Amber_02=color rgb<0.8941, 0.6863, 0.2902>;
#declare Col_Amber_03=color rgb<0.7412, 0.4235, 0.2588>;
#declare Col_Amber_04=color rgb<0.7059, 0.3961, 0.1216>;
#declare Col_Amber_05=color rgb<0.5647, 0.2392, 0.0745>;
#declare Col_Amber_06=color rgb<0.8157, 0.6549, 0.2392>;
#declare Col_Amber_07=color rgb<0.9882, 0.6941, 0.0431>;
#declare Col_Amber_08=color rgb<0.8549, 0.4706, 0.1294>;
#declare Col_Amber_09=color rgb<0.5294, 0.2431, 0.1529>;
// #### additional glass finishes ####
#declare F_Glass5 =
finish {
specular 0.7
roughness 0.001
ambient 0
diffuse 0
reflection {
0.2, 1.0
fresnel on
}
conserve_energy
}
#declare F_Glass6 =
finish {
specular 0.6
roughness 0.002
ambient 0
diffuse 0.1
brilliance 5
reflection {
0.1, 1.0
fresnel on
}
conserve_energy
}
#declare F_Glass7 =
finish {
specular 0.9
roughness 0.001
ambient 0
diffuse 0
reflection {
0.0, 1.0
fresnel on
}
conserve_energy
}
#declare F_Glass8 =
finish {
specular 0.6
roughness 0.005
ambient 0
diffuse 0.15
brilliance 4
reflection {
0.2, 1.0
fresnel on
}
conserve_energy
}
#declare F_Glass9 =
finish {
specular 0.8
roughness 0.001
ambient 0
diffuse 0
reflection {
0.05, 1.0
}
conserve_energy
}
#declare F_Glass10 =
finish {
specular 0.6
roughness 0.002
ambient 0
diffuse 0.1
reflection {
0.05, 1.0
}
conserve_energy
}
// #### additional glass interiors ####
#declare I_Glass1=
interior {
ior 1.5
fade_distance 1.0
fade_power 2
}
#declare I_Glass2=
interior {
ior 1.5
fade_distance 0.5
fade_power 1001
}
#declare I_Glass3=
interior {
ior 1.5
fade_distance 1.0
fade_power 1001
}
#declare I_Glass4=
interior {
ior 1.5
fade_distance 2.0
fade_power 1001
}
#declare I_Glass_Fade_Sqr1=interior { I_Glass1 }
#declare I_Glass_Fade_Exp1=interior { I_Glass2 }
#declare I_Glass_Fade_Exp2=interior { I_Glass3 }
#declare I_Glass_Fade_Exp3=interior { I_Glass4 }
#declare I_Glass_Dispersion1=
interior {
ior 1.5
dispersion 1.02
fade_distance 1
fade_power 1001
}
#declare I_Glass_Dispersion2=
interior {
ior 1.5
dispersion 1.15
fade_distance 1
fade_power 1001
}
#declare I_Glass_Caustics1=
interior {
ior 1.5
caustics 0.5
fade_distance 1
fade_power 1001
}
#declare I_Glass_Caustics2=
interior {
ior 1.5
caustics 1.0
fade_distance 1
fade_power 1001
}
#macro I_Glass_Exp(Distance)
ior 1.5
fade_distance Distance
fade_power 1001
#end
#macro I_Glass_Sqr(Distance)
ior 1.5
fade_distance Distance
fade_power 2
#end
#version Glass_Inc_Temp;
#end

View file

@ -0,0 +1,168 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer Include File
// File: glass_old.inc
// Last updated: 2001.8.9
// Description: Glass finishes and textures (was glass.inc in versions prior to 3.5).
// Changes in version 3.1: moved refraction and ior to the interior statment.
// Use I_Glass in conjunction with each of the finish statments below.
// Version 3.5: Renamed file as glass_old.inc.
//
// Updated: 27Sep2008(jh)
//
// To suppress warnings generated from using these deprecated textures you should consider
// converting them to materials.
//
// In this example texture {T_Glass4} interior {I_Glass caustics 1} becomes
//
// material {
// texture {
// pigment { color rgbf <0.98, 1.0, 0.99, 0.75> }
// finish { F_Glass4 }
// }
// interior { I_Glass caustics 1 }
// }
#ifndef(Glass_Old_Inc_Temp)
#declare Glass_Old_Inc_Temp=version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including glass_old.inc\n"
#end
// Glass Interior
#declare I_Glass =
interior {
ior 1.5
}
// Glass Finishes
#declare F_Glass1 =
finish {
specular 1
roughness 0.001
ambient 0
diffuse 0
reflection 0.1
}
#declare F_Glass2 =
finish {
ambient 0
diffuse 0
reflection 0.5
phong 0.3
phong_size 60
}
#declare F_Glass3 =
finish {
ambient 0.1
diffuse 0.1
reflection 0.1
specular 0.8
roughness 0.003
phong 1
phong_size 400
}
#declare F_Glass4 =
finish {
ambient 0.1
diffuse 0.1
reflection .25
specular 1
roughness 0.001
}
// Glass Textures
// Simple clear glass
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Glass1" T_Glass1 =
texture {
pigment { color rgbf<1.0, 1.0, 1.0, 0.7> }
finish { F_Glass1 }
}
// More like an acrylic plastic
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Glass2" T_Glass2 =
texture {
pigment { color rgbf<1.0, 1.0, 1.0, 1.0> }
finish { F_Glass2 }
}
// An excellent lead crystal glass!
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Glass3" T_Glass3 =
texture {
pigment { color rgbf <0.98, 0.98, 0.98, 0.9> }
finish { F_Glass3 }
}
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Glass4" T_Glass4 =
texture {
pigment { color rgbf <0.98, 1.0, 0.99, 0.75> }
finish { F_Glass4 }
}
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Old_Glass" T_Old_Glass =
texture {
pigment { color rgbf <0.8, 0.9, 0.85, 0.85> }
finish { F_Glass4 }
}
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Winebottle_Glass" T_Winebottle_Glass =
texture {
pigment { color rgbf <0.4, 0.72, 0.4, 0.6> }
finish { F_Glass4 }
}
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Beerbottle_Glass" T_Beerbottle_Glass =
texture {
pigment { color rgbf <0.7, 0.5, 0.1, 0.6> }
finish { F_Glass4 }
}
// A few color variations on Norm's glass
// Ruby glass
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Ruby_Glass" T_Ruby_Glass =
texture {
pigment { color rgbf <0.9, 0.1, 0.2, 0.8> }
finish { F_Glass4 }
}
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Green_Glass" T_Green_Glass =
texture {
pigment { color rgbf <0.8, 1, 0.95, 0.9> }
finish { F_Glass3 }
}
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Dark_Green_Glass" T_Dark_Green_Glass =
texture {
pigment { color rgbf <0.1, 0.7, 0.8, 0.8> }
finish { F_Glass4 }
}
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Yellow_Glass" T_Yellow_Glass =
texture {
pigment { color rgbf <0.8, 0.8, 0.2, 0.8> }
finish { F_Glass4 }
}
// Orange/Amber glass
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Orange_Glass" T_Orange_Glass =
texture {
pigment { rgbf <1.0, 0.5, 0.0, 0.8> }
finish { F_Glass4 }
}
// Vicks bottle glass
#declare deprecated once "See notes in glass_old.inc regarding use of this deprecated texture: T_Vicksbottle_Glass" T_Vicksbottle_Glass =
texture {
pigment { color rgbf <0.1, 0.15, 0.5, 0.9> }
finish { F_Glass4 }
}
#version Glass_Old_Inc_Temp;
#end

View file

@ -0,0 +1,236 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
#ifndef(Gold_Inc_Temp)
#declare Gold_Inc_Temp=version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including golds.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.1
Gold textures
*/
#declare GoldBase = <1.00, 0.875, 0.575>; // mine again
// This set shifts the color toward orange by subtracting
// bluegreen from the base color.
#declare CVect1 = GoldBase - <0.00, 0.20, 0.40>;
#declare CVect2 = GoldBase - <0.00, 0.15, 0.30>;
#declare CVect3 = GoldBase - <0.00, 0.10, 0.20>;
#declare CVect4 = GoldBase - <0.00, 0.05, 0.1>;
#declare CVect5 = GoldBase - <0.00, 0.00, 0.00>;
// Cast CVect as an rgb vector
#declare P_Gold1 = rgb CVect1; // back row
#declare P_Gold2 = rgb CVect2;
#declare P_Gold3 = rgb CVect3;
#declare P_Gold4 = rgb CVect4;
#declare P_Gold5 = rgb CVect5; // front row
// Reflection colors, derived from pigment color, "grayed down" a touch.
#declare R_GoldA = P_Gold1 * 0.30 + <0.25,0.25,0.25>; // left column (soft)
#declare R_GoldB = P_Gold2 * 0.35 + <0.25,0.25,0.25>;
#declare R_GoldC = P_Gold3 * 0.40 + <0.25,0.25,0.25>;
#declare R_GoldD = P_Gold4 * 0.45 + <0.25,0.25,0.25>;
#declare R_GoldE = P_Gold5 * 0.50 + <0.25,0.25,0.25>; // right column (hard)
// Ambient colors, derived from base color
#declare A_GoldA = P_Gold1 * 0.12 + <0.1,0.1,0.1>; // left column (soft)
#declare A_GoldB = P_Gold2 * 0.10 + <0.1,0.1,0.1>;
#declare A_GoldC = P_Gold3 * 0.08 + <0.1,0.1,0.1>;
#declare A_GoldD = P_Gold4 * 0.05 + <0.1,0.1,0.1>;
#declare A_GoldE = P_Gold5 * 0.02 + <0.1,0.1,0.1>; // right column (hard)
// Diffuse values
// Calculated as 1 - (ambient+reflective+specular values)
#declare D_GoldA = 1-(((R_GoldA.red+R_GoldA.green+R_GoldA.blue)/3)
+ ((A_GoldA.red+A_GoldA.green+A_GoldA.blue)/3));
#declare D_GoldB = 1-(((R_GoldB.red+R_GoldB.green+R_GoldB.blue)/3)
+ ((A_GoldB.red+A_GoldB.green+A_GoldB.blue)/3));
#declare D_GoldC = 1-(((R_GoldC.red+R_GoldC.green+R_GoldC.blue)/3)
+ ((A_GoldC.red+A_GoldC.green+A_GoldC.blue)/3));
#declare D_GoldD = 1-(((R_GoldD.red+R_GoldD.green+R_GoldD.blue)/3)
+ ((A_GoldD.red+A_GoldD.green+A_GoldD.blue)/3));
#declare D_GoldE = 1-(((R_GoldE.red+R_GoldE.green+R_GoldE.blue)/3)
+ ((A_GoldE.red+A_GoldE.green+A_GoldE.blue)/3));
#declare D_GoldA = max(D_GoldA, 0);
#declare D_GoldB = max(D_GoldB, 0);
#declare D_GoldC = max(D_GoldC, 0);
#declare D_GoldD = max(D_GoldD, 0);
#declare D_GoldE = max(D_GoldE, 0);
// #debug "\nReflection colors:"
// #debug concat("\nR_GoldA=<", str(R_GoldA.red, 5, 5), "," ,
// str(R_GoldA.green, 5, 5),"," ,
// str(R_GoldA.blue, 5, 5), ">")
// #debug concat("\nR_GoldB=<", str(R_GoldB.red, 5, 5), "," ,
// str(R_GoldB.green, 5, 5),"," ,
// str(R_GoldB.blue, 5, 5), ">")
// #debug concat("\nR_GoldC=<", str(R_GoldC.red, 5, 5), "," ,
// str(R_GoldC.green, 5, 5),"," ,
// str(R_GoldC.blue, 5, 5), ">")
// #debug concat("\nR_GoldD=<", str(R_GoldD.red, 5, 5), "," ,
// str(R_GoldD.green, 5, 5),"," ,
// str(R_GoldD.blue, 5, 5), ">")
// #debug concat("\nR_GoldE=<", str(R_GoldE.red, 5, 5), "," ,
// str(R_GoldE.green, 5, 5),"," ,
// str(R_GoldE.blue, 5, 5), ">")
//
// #debug "\n\nAmbient colors:"
// #debug concat("\nA_GoldA=<", str(A_GoldA.red, 5, 5), "," ,
// str(A_GoldA.green, 5, 5),"," ,
// str(A_GoldA.blue, 5, 5), ">")
// #debug concat("\nA_GoldB=<", str(A_GoldB.red, 5, 5), "," ,
// str(A_GoldB.green, 5, 5),"," ,
// str(A_GoldB.blue, 5, 5), ">")
// #debug concat("\nA_GoldC=<", str(A_GoldC.red, 5, 5), "," ,
// str(A_GoldC.green, 5, 5),"," ,
// str(A_GoldC.blue, 5, 5), ">")
// #debug concat("\nA_GoldD=<", str(A_GoldD.red, 5, 5), "," ,
// str(A_GoldD.green, 5, 5),"," ,
// str(A_GoldD.blue, 5, 5), ">")
// #debug concat("\nA_GoldE=<", str(A_GoldE.red, 5, 5), "," ,
// str(A_GoldE.green, 5, 5),"," ,
// str(A_GoldE.blue, 5, 5), ">")
//
//
// #debug "\n\nDiffuse values:"
// #debug concat("\nD_GoldA = ",str(D_GoldA, 5, 5))
// #debug concat("\nD_GoldB = ",str(D_GoldB, 5, 5))
// #debug concat("\nD_GoldC = ",str(D_GoldC, 5, 5))
// #debug concat("\nD_GoldD = ",str(D_GoldD, 5, 5))
// #debug concat("\nD_GoldE = ",str(D_GoldE, 5, 5))
// #debug "\n"
#declare M = 1; // Metallic amount
//*****Finishes****
// Left column, dullest & darkest
#declare F_MetalA =
finish {
brilliance 2
diffuse D_GoldA
ambient A_GoldA
reflection R_GoldA
metallic M
specular 0.20
roughness 1/20
}
#declare F_MetalB =
finish {
brilliance 3
diffuse D_GoldB
ambient A_GoldB
reflection R_GoldB
metallic M
specular 0.30
roughness 1/60
}
#declare F_MetalC =
finish {
brilliance 4
diffuse D_GoldC
ambient A_GoldC
reflection R_GoldC
metallic M
specular 0.60
roughness 1/80
}
#declare F_MetalD =
finish {
brilliance 5
diffuse D_GoldD
ambient A_GoldD
reflection R_GoldD
metallic M
specular 0.70
roughness 1/100
}
#declare F_MetalE =
finish {
brilliance 6
diffuse D_GoldE
ambient A_GoldE
reflection R_GoldE
metallic M
specular 0.80
roughness 1/120
}
// GOLDS
#declare T_Gold_1A = texture { pigment { P_Gold1 } finish { F_MetalA } }
#declare T_Gold_1B = texture { pigment { P_Gold1 } finish { F_MetalB } }
#declare T_Gold_1C = texture { pigment { P_Gold1 } finish { F_MetalC } }
#declare T_Gold_1D = texture { pigment { P_Gold1 } finish { F_MetalD } }
#declare T_Gold_1E = texture { pigment { P_Gold1 } finish { F_MetalE } }
#declare T_Gold_2A = texture { pigment { P_Gold2 } finish { F_MetalA } }
#declare T_Gold_2B = texture { pigment { P_Gold2 } finish { F_MetalB } }
#declare T_Gold_2C = texture { pigment { P_Gold2 } finish { F_MetalC } }
#declare T_Gold_2D = texture { pigment { P_Gold2 } finish { F_MetalD } }
#declare T_Gold_2E = texture { pigment { P_Gold2 } finish { F_MetalE } }
#declare T_Gold_3A = texture { pigment { P_Gold3 } finish { F_MetalA } }
#declare T_Gold_3B = texture { pigment { P_Gold3 } finish { F_MetalB } }
#declare T_Gold_3C = texture { pigment { P_Gold3 } finish { F_MetalC } }
#declare T_Gold_3D = texture { pigment { P_Gold3 } finish { F_MetalD } }
#declare T_Gold_3E = texture { pigment { P_Gold3 } finish { F_MetalE } }
#declare T_Gold_4A = texture { pigment { P_Gold4 } finish { F_MetalA } }
#declare T_Gold_4B = texture { pigment { P_Gold4 } finish { F_MetalB } }
#declare T_Gold_4C = texture { pigment { P_Gold4 } finish { F_MetalC } }
#declare T_Gold_4D = texture { pigment { P_Gold4 } finish { F_MetalD } }
#declare T_Gold_4E = texture { pigment { P_Gold4 } finish { F_MetalE } }
#declare T_Gold_5A = texture { pigment { P_Gold5 } finish { F_MetalA } }
#declare T_Gold_5B = texture { pigment { P_Gold5 } finish { F_MetalB } }
#declare T_Gold_5C = texture { pigment { P_Gold5 } finish { F_MetalC } }
#declare T_Gold_5D = texture { pigment { P_Gold5 } finish { F_MetalD } }
#declare T_Gold_5E = texture { pigment { P_Gold5 } finish { F_MetalE } }
//The following #declares are needed for stage_xz.pov
#declare T01 = texture { T_Gold_1A }
#declare T02 = texture { T_Gold_1B }
#declare T03 = texture { T_Gold_1C }
#declare T04 = texture { T_Gold_1D }
#declare T05 = texture { T_Gold_1E }
#declare T06 = texture { T_Gold_2A }
#declare T07 = texture { T_Gold_2B }
#declare T08 = texture { T_Gold_2C }
#declare T09 = texture { T_Gold_2D }
#declare T10 = texture { T_Gold_2E }
#declare T11 = texture { T_Gold_3A }
#declare T12 = texture { T_Gold_3B }
#declare T13 = texture { T_Gold_3C }
#declare T14 = texture { T_Gold_3D }
#declare T15 = texture { T_Gold_3E }
#declare T16 = texture { T_Gold_4A }
#declare T17 = texture { T_Gold_4B }
#declare T18 = texture { T_Gold_4C }
#declare T19 = texture { T_Gold_4D }
#declare T20 = texture { T_Gold_4E }
#declare T21 = texture { T_Gold_5A }
#declare T22 = texture { T_Gold_5B }
#declare T23 = texture { T_Gold_5C }
#declare T24 = texture { T_Gold_5D }
#declare T25 = texture { T_Gold_5E }
#version Gold_Inc_Temp;
#end

View file

@ -0,0 +1,227 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.7 Include File
// File: ior.inc
// Last updated: 2010.12.12
// Description: This file contains constants for ior and dispersion of various materials.
#ifndef(Ior_Inc_Temp)
#declare Ior_Inc_Temp=version;
#version 3.7;
#ifdef(View_POV_Include_Stack)
#debug "including ior.inc\n"
#end
// Index Of Refraction and Dispersion of various materials
// =======================================================
// Original 2008-2009 by Christoph Lipka
// Notes on literature:
//
// * Refractive index is typically denoted with the symbol "n" (sometimes "N"), optionally followed by a subscript designating
// the specific conditions under which measurements were made. Common subscripts are:
// - Greek lower case letters omega and epsilon:
// These are related to birefringence (i.e. the property of a material to refract light at two different angles, splitting up
// the light according to polarization).
// Since PoV-ray currently doesn't support bireferingence at all, we can ignore this effect and use an average of the values.
// - Greek lower case letters alpha, beta and gamma:
// These are related to biaxial birefringence, aka trirefringence. Again, no PoV-ray support.
// Sometimes, Nx, Ny and Nz or simply alpha, beta and gamma are used for n[alpha], n[beta], n[gamma].
// - Latin uppercase (sometimes lowercase) letters:
// These are related to the wavelength of the light; the letter denotes the corresponding "Fraunhofer line", a series of
// distinct spectral lines in natural sunlight, with the following being most common:
// B 686.719nm extreme red molecular Oxygen (O2)
// C 656.281nm red Hydrogen (H)
// D 589.29 nm yellow Sodium (Na); center of D1 and D2 ("Sodium doublet")
// F 486.134nm blue Hydrogen (H)
// G 430.78 nm violet Iron (Fe, 430.790nm) or Calcium (Ca, 430.774 nm)
// h 410.175nm violet Hydrogen (H); Balmer series delta; alternatively center of delta and epsilon (404.7 nm)
// - If no further designation is used, the refractive index is usually measured for Fraunhofer line "D".
// The PoV-ray documentation does not specify which color (let alone wavelength) is considered "neutral" with respect to
// dispersion, so I suggest using nD, if only for simplicity.
//
// * Dispersion is typically characterized in one of the following ways:
// - A (typically undesignated) value in order of magnitude ~0.010:
// Such a value specifies the difference of the refractive indices for two given wavelengths. Usually, nG-nB is specified.
// Differences between other wavelengths will be denoted accordingly as e.g. "nF-nC".
// This is often seen with natural minerals.
// - The so-called "Abbe number":
// This value specifies the quotient (nD-1)/(nF-nC).
// This is often seen with industrial mass products, especially glass and common glass substitutes.
// - By refractive indices for individual wavelengths.
// This is often seen with industrial high-end products.
// PoV-ray characterizes dispersion as the quotient of refractive indices for "violet" and "red"; assuming that this roughly
// matches nG and nB respectively, the value to be used can quite easily be approximated from nG-nB and the overall index of
// refraction, as long as nG-nB is significantly small (which in practice it always is).
// Approximating the PoV-ray "dispersion" value from the Abbe number is not so straightforward though, as this is based on a
// different wavelength interval, and the index of refraction is not linear with respect to wavelength.
// Approximating the PoV-ray "dispersion" value from individual wavelengths is again an easy task of course, provided that the
// wavelengths of two of the known refractive indices qualify as "violet" and "red" respectively.
//
// Other notes:
//
// * Not all of the materials listed below are typically transparent. The refractive indices may nonetheless be of interest
// in subsurface scattering simulation, or to properly simulate a polished gem's reflection using the fresnel keyword,
// so I included them here as I happened to come across them.
// * Some materials have varying optical properties or exhibit birefringence, making it impossible to specify a single exact
// refractive index; in such cases, a typical average value was chosen.
// Formula to approximate PoV-ray's "dispersion" value
// ---------------------------------------------------
#declare FnPovDispersion = function(ri,disp) { 1+disp/(ri-disp/2) } // from refractive index ri (=nD) and nominal dispersion disp (=nG-nB)
// Common glass types by Schott designations
// -----------------------------------------
// Note: For these, the POV values are computed here according to the Fraunhofer lines h (404.7 nm), D and C
#macro Ior (data) (data.y) #end
#macro Disp(data) (FnPovDispersion(data.y, data.x-data.z)) #end
#local iorData=<1.58941, 1.57241, 1.56949>; #declare iorCrownGlassBaK1 = Ior(iorData); #declare dispCrownGlassBaK1 = Disp(iorData);
#local iorData=<1.53024, 1.51673, 1.51432>; #declare iorCrownGlassBK7 = Ior(iorData); #declare dispCrownGlassBK7 = Disp(iorData);
#local iorData=<1.65064, 1.61989, 1.61503>; #declare iorFlintGlassF2 = Ior(iorData); #declare dispFlintGlassF2 = Disp(iorData);
#local iorData=<1.89844, 1.85002, 1.84256>; #declare iorFlintGlassLaSFN9 = Ior(iorData); #declare dispFlintGlassLaSFN9 = Disp(iorData);
#local iorData=<1.84208, 1.78446, 1.77599>; #declare iorFlintGlassSF11 = Ior(iorData); #declare dispFlintGlassSF11 = Disp(iorData);
#declare iorCrownGlass = iorCrownGlassBK7; #declare dispCrownGlass = dispCrownGlassBK7; // most common crown glass
#declare iorFlintGlass = iorFlintGlassSF11; #declare dispFlintGlass = dispFlintGlassSF11; // a common flint glass
#declare iorWindowGlass = iorCrownGlassBK7; #declare dispWindowGlass = dispCrownGlassBK7;
#declare iorGlass = iorWindowGlass; #declare dispGlass = dispWindowGlass;
#undef Ior
#undef Disp
// Gemstones by alphabet (excluding variants and aliases)
// ------------------------------------------------------
// Note: For these, the POV values are computed here directly from the refractive index and dispersion values found in literature;
// Where refractive indices at selected wavelengths were found instead, these values were precomputed from the refractive indices at
// Fraunhofer lines G, D and B respectively.
#macro Ior (data) (data.x) #end
#macro Disp(data) (FnPovDispersion(data.x, data.y)) #end
#local iorData=<1.790, .024>; #declare iorAlmandineGarnet = Ior(iorData); #declare dispAlmandineGarnet = Disp(iorData);
#local iorData=<1.64, .016>; #declare iorAndalusite = Ior(iorData); #declare dispAndalusite = Disp(iorData);
#local iorData=<1.888, .057>; #declare iorAndraditeGarnet = Ior(iorData); #declare dispAndraditeGarnet = Disp(iorData);
#local iorData=<1.63, .013>; #declare iorApatite = Ior(iorData); #declare dispApatite = Disp(iorData);
#local iorData=<1.58, .014>; #declare iorBeryl = Ior(iorData); #declare dispBeryl = Disp(iorData);
#local iorData=<1.69, .019>; #declare iorChromeDiopside = Ior(iorData); #declare dispChromeDiopside = Disp(iorData);
#local iorData=<1.746, .015>; #declare iorChrysoberyl = Ior(iorData); #declare dispChrysoberyl = Disp(iorData);
#local iorData=<2.16, .060>; #declare iorCubicZirconia = Ior(iorData); #declare dispCubicZirconia = Disp(iorData); // [1] NOT Zircon!
#local iorData=<1.766, .018>; #declare iorCorundum = Ior(iorData); #declare dispCorundum = Disp(iorData);
#local iorData=<1.885, .057>; #declare iorDemantoidGarnet = Ior(iorData); #declare dispDemantoidGarnet = Disp(iorData);
#local iorData=<2.417, .044>; #declare iorDiamond = Ior(iorData); #declare dispDiamond = Disp(iorData);
#local iorData=<1.434, .007>; #declare iorFluorite = Ior(iorData); #declare dispFluorite = Disp(iorData);
#local iorData=<1.740, .028>; #declare iorGrossulariteGarnet = Ior(iorData); #declare dispGrossulariteGarnet = Disp(iorData);
#local iorData=<1.55, .017>; #declare iorIolite = Ior(iorData); #declare dispIolite = Disp(iorData);
#local iorData=<1.73, .020>; #declare iorKyanite = Ior(iorData); #declare dispKyanite = Disp(iorData);
#local iorData=<1.654, .020>; #declare iorPeridot = Ior(iorData); #declare dispPeridot = Disp(iorData);
#local iorData=<1.74, .022>; #declare iorPyropeGarnet = Ior(iorData); #declare dispPyropeGarnet = Disp(iorData);
#local iorData=<1.544, .013>; #declare iorQuartz = Ior(iorData); #declare dispQuartz = Disp(iorData);
#local iorData=<1.76, .026>; #declare iorRhodoliteGarnet = Ior(iorData); #declare dispRhodoliteGarnet = Disp(iorData);
#local iorData=<1.81, .027>; #declare iorSpessartiteGarnet = Ior(iorData); #declare dispSpessartiteGarnet = Disp(iorData);
#local iorData=<1.70, .051>; #declare iorSphene = Ior(iorData); #declare dispSphene = Disp(iorData); // [2]
#local iorData=<1.712, .020>; #declare iorSpinel = Ior(iorData); #declare dispSpinel = Disp(iorData);
#local iorData=<1.620, .014>; #declare iorTopaz = Ior(iorData); #declare dispTopaz = Disp(iorData);
#local iorData=<1.624, .017>; #declare iorTourmaline = Ior(iorData); #declare dispTourmaline = Disp(iorData);
#local iorData=<1.740, .028>; #declare iorTsavoriteGarnet = Ior(iorData); #declare dispTsavoriteGarnet = Disp(iorData);
#local iorData=<1.67, .017>; #declare iorSpodumene = Ior(iorData); #declare dispSpodumene = Disp(iorData);
#local iorData=<1.95, .039>; #declare iorZircon = Ior(iorData); #declare dispZircon = Disp(iorData); // [3] NOT [Cubic] Zirconia!
#local iorData=<1.70, .030>; #declare iorZoisite = Ior(iorData); #declare dispZoisite = Disp(iorData);
#undef Ior
#undef Disp
// Values from other sources:
// [1] ior = 1.80 .. 2.23 (lower bound dubious, maybe mixup with Zircon)
// [2] ior = 1.88 .. 2.05
// [3] ior = 1.88
// Variants by alphabet
// --------------------
#declare iorAgate = iorQuartz; #declare dispAgate = dispQuartz;
#declare iorAlexandrite = iorChrysoberyl; #declare dispAlexandrite = dispChrysoberyl;
#declare iorAmethyst = iorQuartz; #declare dispAmethyst = dispQuartz;
#declare iorAmetrine = iorQuartz; #declare dispAmetrine = dispQuartz;
#declare iorAquamarine = iorBeryl; #declare dispAquamarine = dispBeryl;
#declare iorAventurine = iorQuartz; #declare dispAventurine = dispQuartz;
#declare iorChalcedony = iorQuartz; #declare dispChalcedony = dispQuartz;
#declare iorCitrine = iorQuartz; #declare dispCitrine = dispQuartz;
#declare iorEmerald = iorBeryl; #declare dispEmerald = dispBeryl;
#declare iorHiddenite = iorSpodumene; #declare dispHiddenite = dispSpodumene;
#declare iorKunzite = iorSpodumene; #declare dispKunzite = dispSpodumene;
#declare iorMorganite = iorBeryl; #declare dispMorganite = dispBeryl;
#declare iorOnyx = iorQuartz; #declare dispOnyx = dispQuartz;
#declare iorPadparadscha = iorCorundum; #declare dispPadparadscha = dispCorundum;
#declare iorRoseQuartz = iorQuartz; #declare dispRoseQuartz = dispQuartz;
#declare iorRuby = iorCorundum; #declare dispRuby = dispCorundum;
#declare iorSapphire = iorCorundum; #declare dispSapphire = dispCorundum;
#declare iorSmokyQuartz = iorQuartz; #declare dispSmokyQuartz = dispQuartz;
#declare iorTanzanite = iorZoisite; #declare dispTanzanite = dispZoisite;
#declare iorTigersEye = iorQuartz; #declare dispTigersEye = dispQuartz;
// Aliases by alphabet
// -------------------
#declare iorCyanite = iorKyanite; #declare dispCyanite = dispKyanite;
#declare iorCZ = iorCubicZirconia; #declare dispCZ = dispCubicZirconia;
#declare iorDisthene = iorKyanite; #declare dispDisthene = dispKyanite;
#declare iorGarnetAlmandine = iorAlmandineGarnet; #declare dispGarnetAlmandine = dispAlmandineGarnet;
#declare iorGarnetAndradite = iorAndraditeGarnet; #declare dispGarnetAndradite = dispAndraditeGarnet;
#declare iorGarnetDemantoid = iorDemantoidGarnet; #declare dispGarnetDemantoid = dispDemantoidGarnet;
#declare iorGarnetGrossularite = iorGrossulariteGarnet; #declare dispGarnetGrossularite = dispGrossulariteGarnet;
#declare iorGarnetPyrope = iorPyropeGarnet; #declare dispGarnetPyrope = dispPyropeGarnet;
#declare iorGarnetRhodolite = iorRhodoliteGarnet; #declare dispGarnetRhodolite = dispRhodoliteGarnet;
#declare iorGarnetSpessartite = iorSpessartiteGarnet; #declare dispGarnetSpessartite = dispSpessartiteGarnet;
#declare iorGarnetTsavorite = iorTsavoriteGarnet; #declare dispGarnetTsavorite = dispTsavoriteGarnet;
#declare iorMunkrudite = iorKyanite; #declare dispMunkrudite = dispKyanite;
#declare iorZirconia = iorCubicZirconia; #declare dispZirconia = dispCubicZirconia; // NOT Zircon!
// Odds and ends
// -------------
// Note: For these, I found information on refractive indices but none about dispersion
#declare iorAdulariaMoonstone = 1.52;
#declare iorAmazonite = 1.53;
#declare iorAmber = 1.54;
#declare iorAndesine = 1.53;
#declare iorCoral = 1.486;
#declare iorIvory = 1.540;
#declare iorJadeite = 1.67; // "hard jade"
#declare iorJasper = 1.54;
#declare iorLabradorite = 1.56;
#declare iorLapisLazuli = 1.5; // lazurite compound; other sources: nD = 1.610
#declare iorMalachite = 1.655;
#declare iorMoissanite = 2.670; // (Silicon Carbide)
#declare iorNephriteJade = 1.62; // "soft jade"
#declare iorOpal = 1.45;
#declare iorOrthoclase = 1.52;
#declare iorPearl = 1.53;
#declare iorPrehnite = 1.64;
#declare iorTurquoise = 1.610;
#declare iorJadeNephrite = iorNephriteJade;
#declare iorFireOpal = iorOpal;
#declare iorMoonstoneAdularia = iorAdulariaMoonstone;
#declare iorMossOpal = iorOpal;
// end of ior.inc
#version Ior_Inc_Temp;
#end

View file

@ -0,0 +1,109 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Raytracer Version 3.5 Scene Description File
#ifndef(Logo_Inc_Temp)
#declare Logo_Inc_Temp=version;
#version 3.5;
/*
The official POV-Ray Logo
Designed by Chris Colefax
This logo was the one that won the POV-Ray Logo Contest
held and organized by Rune S. Johansen in year 2000 and
monitored by the POV-Team.
Comment from Chris Colefax:
"This logo (or symbol, rather) attempts to encapsulate a
number of ideas. Firstly, the symbol represents an eye with
a ray being traced from it, capturing the fundamentally
visual nature of POV-Ray and the rendering process POV-Ray
uses. More obviously, it's a P, and both an O and a V can
be seen in it as well, making the symbol specific to (and
immediately identifiable with) POV-Ray, rather than
raytracing in general. The basic symbol itself is a simple
CSG construction composed of five POV-Ray primitives. The
simplicity of the symbol means that it can be presented
recognisably in a range of ways, from a graphical 2D logo
to a full blown rendering, or incorporated discreetly into
other designs and images."
Prism version and bevel version by Rune S. Johansen.
*/
#include "shapes.inc"
// The original version is made of various objects.
#declare Povray_Logo =
merge {
sphere {2*y, 1}
difference {
cone {2*y, 1, -4*y, 0}
sphere {2*y, 1.4 scale <1,1,2>}
}
difference {
sphere {0, 1 scale <2.6, 2.2, 1>}
sphere {0, 1 scale <2.3, 1.8, 2> translate <-0.35, 0, 0>}
rotate z*30 translate 2*y
}
rotate <0, 0, -25>
translate <-0.5,-0.35,0>
scale 1/4
}
// The prism version is not really made of a prism object alone,
// but it looks that way.
#declare Povray_Logo_Prism =
merge {
cylinder {-z, z, 1 translate 2*y}
difference {
prism {-0.9999, 0.9999, 4, <-1,2>, <1,2>, <0,-4>, <-1,2> rotate -90*x}
cylinder {-z, z, 1.4 scale <1,0.9,1.1> translate 1.9*y}
}
difference {
cylinder {-z, z, 1 scale <2.6, 2.2, 1>}
cylinder {-z, z, 1 scale <2.22, 1.72, 1.1> translate <-0.43, 0, 0>}
rotate z*30 translate 2*y
}
rotate <0, 0, -25>
translate <-0.5,-0.35,0>
scale <1/4,1/4,1/8>
}
// The bevel version has its base at the xy plane and
// is beveled in 45 degrees in the -z direction.
// Intersect the object with a plane to get a flat object
// with beveled edges.
#declare Povray_Logo_Bevel =
merge {
cone {0, 1, z, 0 translate 2*y}
difference {
box {<-0.8,-4,0>, <0.8,0.9,0.7>}
object{Supercone(-0.0001*z, 1.4,1.26, 1.0001*z, 2.4,2.26) translate 1.9*y}
plane {vrotate( x-z, degrees(atan2(1/6,1))*z), 0 translate -4*y}
plane {vrotate(-x-z,-degrees(atan2(1/6,1))*z), 0 translate -4*y}
}
difference {
object{Supercone(0, 2.6,2.2, z, 1.6,1.2)}
object{Supercone(-0.0001*z, 2.22,1.72, 1.0001*z, 3.22,2.72) translate -0.43*x}
clipped_by {
difference {
cylinder { 0.0*z, 0.5*z, 1 scale <2.60,2.20,1.0>}
cylinder {-0.1*z, 0.6*z, 1 scale <2.22,1.72,1.1> translate -0.43*x}
}
}
rotate z*30 translate 2*y
}
rotate <0, 0, -25>
translate <-0.5,-0.35,0>
scale <1,1,-1>/4
}
#version Logo_Inc_Temp;
#end

View file

@ -0,0 +1,354 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.6 / 3.7 Include File
// File: makegrass.inc
// --------------------------------------
// Author: Gilles Tran, 1999-2004, http://www.oyonale.com
// former mgrass.pov by Gilles Tran
// Updated for POV-Ray 3.7: March-2013
//
// Description: macros for creating grass.
// ================================================
// This file presents 3 macros
// MakeBlade() creates an individual blade of grass
// MakeGrassPatch() creates a patch of grass (mesh)
// optional with saving the mesh in a text file
// MakePrairie() creates a prairie of grass patches
// ------------------------------------------------
#ifndef( makegrass_Inc_Temp)
#declare makegrass_Inc_Temp=version;
#version 3.6;
#ifdef(View_POV_Include_Stack)
#debug "including makegrass.inc\n"
#end
//==============================================
// MakeBlade macro
//==============================================
// The MakeBlade macro creates a grass blade with a central fold
// The blade is positionned at posBlade and rotated around the y axis according to segBlade
// Its length is lBlade.
// The blade bends from vector startBend to vector endBend
// The describes how the curbe bends; low power bend faster
// --------------------------------------
// It first creates an array of points (vertices)
// Then it calculates the normals (optional)
/*
#declare doSmooth = true; // smooth triangles
#declare posBlade = <0,0,0>; // position of blade
#declare rotBlade = 100; // rotation of blade around y
#declare segBlade= 20; // number of blade segments - try low values (5 for instance) for tests
#declare lBlade = 10; // length of blade
#declare xBladeStart = 1; // width of blade at start
#declare xBladeEnd = 0.1; // width of blade at the end
#declare zBladeStart = 0.5; // depth of blade fold at start
#declare startBend = <0,1,0>; // bending of blade at start (<0,1,0>=no bending)
#declare vBend = <0,0,1>; // force bending the blade (<0,1,1> = 45°)
#declare pwBend = 1; // bending power (how slowly the curve bends)
#declare dofold = false; // true creates a fold in the blade (twice more triangles)
#declare dofile = false; // true creates a mesh file
// --------------------------------------
*/
//---------------------------------------------------------------------------------------------------------------
#macro MakeBlade( doSmooth, // 0 or 1,// smooth triangles
posBlade, // <0,0,0>,// position of blade
rotBlade, // 00,// rotation of blade around y
segBlade, // 20,// number of blade segments, try low values (5 for instance) for tests
lBlade, // 10,// length of blade
xBladeStart, // 1,// width of blade at start
xBladeEnd, // 0.1,// width of blade at the end
zBladeStart, // 0.5,// depth of blade fold at start
startBend, //<0,1,0.3>,// bending of blade at start (<0,1,0>=no bending)
vBend, // <0,0,1>,// force bending the blade (<0,1,1> = 45°)
pwBend, // 1,// bending power (how slowly the curve bends)
dofold, // 0 or 1,// true or 1 creates a fold in the blade (twice more triangles)
dofile // 0 or 1,// true or 1 creates a mesh file
) //--------------------------------------------------------------------------------------------
#local lsegBlade=lBlade/segBlade;
#if (dofold=true)
#local nI=3;
#else
#local nI=2;
#end
#local nJ=segBlade+1;
#local nP=nI*nJ;
#local P=array[nP]
#local N=array[nP]
#local pBlade=<0,0,0>;
#local Count=0;
#local xBlade=xBladeStart;
#local zBlade=zBladeStart;
#if (dofold=true)
#local P[0]=vaxis_rotate(-x*xBlade,y,rotBlade)+posBlade;
#local P[1]=vaxis_rotate(z*zBlade,y,rotBlade)+posBlade;
#local P[2]=vaxis_rotate(x*xBlade,y,rotBlade)+posBlade;
#else
#local P[0]=vaxis_rotate(-x*xBlade,y,rotBlade)+posBlade;
#local P[1]=vaxis_rotate(x*xBlade,y,rotBlade)+posBlade;
#end
#local Count=1;
#local pBlade=vnormalize(startBend)*lsegBlade;
// --------------------------------------
// Fills the array of points
// --------------------------------------
#while (Count<nJ)
#local tBlade=Count/segBlade;
// This is where the blade shape is defined
#local pBlade=pBlade+lsegBlade*vnormalize(vnormalize(pBlade)+ vBend*pow(tBlade,pwBend));
#local xBlade=xBladeStart+tBlade*(xBladeEnd-xBladeStart);
#if (dofold=true)
#local zBlade=zBladeStart*(1-tBlade);
#local P[Count*nI]=vaxis_rotate(pBlade-x*xBlade,y,rotBlade)+posBlade;
#local P[Count*nI+1]=vaxis_rotate(pBlade+z*zBlade,y,rotBlade)+posBlade;
#local P[Count*nI+2]=vaxis_rotate(pBlade+x*xBlade,y,rotBlade)+posBlade;
#else
#local P[Count*nI]=vaxis_rotate(pBlade-x*xBlade,y,rotBlade)+posBlade;
#local P[Count*nI+1]=vaxis_rotate(pBlade+x*xBlade,y,rotBlade)+posBlade;
#end
#local Count=Count+1;
#end
// --------------------------------------
// Calculates normals if doSmooth = true
// --------------------------------------
#if (doSmooth=true)
#local N = array[nP] // Normales
#local q=0;
#while (q<nP)
#local i=mod(q,nI);#local j=(q-i)/nI;
#local V0 = q-nI-1;#if (i=0) #local V0=-1; #end
#local V1 = q-nI;
#local V2 = q-nI+1;#if (i=nI-1) #local V2=-1; #end
#local V3 = q-1;#if (i=0) #local V3=-1; #end
#local V4 = q;
#local V5 = q+1;#if (i=nI-1) #local V5=-1; #end
#local V6 = q+nI-1;#if (i=0) #local V6=-1; #end
#local V7 = q+nI;
#local V8 = q+nI+1;#if (i=nI-1) #local V8=-1; #end
#if (j=0) #local V0=-1;#local V1=-1;#local V2=-1;#end
#if (j=nJ-1) #local V6=-1;#local V7=-1;#local V8=-1; #end
#local N[q]=<0,0,0>;
#local k=0;
#if (V5>-1 & V8>-1) #local N[q]=N[q]+vcross(P[V4]-P[V5],P[V8]-P[V4]);#local k=k+1;#end
#if (V2>-1 & V5>-1) #local N[q]=N[q]+vcross(P[V4]-P[V2],P[V5]-P[V4]);#local k=k+1;#end
#if (V1>-1 & V2>-1) #local N[q]=N[q]+vcross(P[V4]-P[V1],P[V2]-P[V4]);#local k=k+1;#end
#if (V0>-1 & V1>-1) #local N[q]=N[q]+vcross(P[V4]-P[V0],P[V1]-P[V4]);#local k=k+1;#end
#if (V3>-1 & V0>-1) #local N[q]=N[q]+vcross(P[V4]-P[V3],P[V0]-P[V4]);#local k=k+1;#end
#if (V6>-1 & V3>-1) #local N[q]=N[q]+vcross(P[V4]-P[V6],P[V3]-P[V4]);#local k=k+1;#end
#if (V7>-1 & V6>-1) #local N[q]=N[q]+vcross(P[V4]-P[V7],P[V6]-P[V4]);#local k=k+1;#end
#if (V8>-1 & V7>-1) #local N[q]=N[q]+vcross(P[V4]-P[V8],P[V7]-P[V4]);#local k=k+1;#end
#local N[q]=N[q]/k;
#local q=q+1;#end
#end
// --------------------------------------
// Writes the triangles
// --------------------------------------
#local q=0;
#while (q<(nI*(nJ-1)-1))
#local i=mod(q,nI);#local j=(q-i)/nI;
#if (i <nI-1)
#if (doSmooth=true)
#if (dofile=true)
#write(filehandle,"smooth_triangle{<",P[q].x,",",P[q].y,",",P[q].z,">,<",N[q].x,",",N[q].y,",",N[q].z,">,<",P[q+1].x,",",P[q+1].y,",",P[q+1].z,">,<",N[q+1].x,",",N[q+1].y,",",N[q+1].z,">,<",P[q+nI+1].x,",",P[q+nI+1].y,",",P[q+nI+1].z,">,<",N[q+nI+1].x,",",N[q+nI+1].y,",",N[q+nI+1].z,">}\n")
#write(filehandle,"smooth_triangle{<",P[q].x,",",P[q].y,",",P[q].z,">,<",N[q].x,",",N[q].y,",",N[q].z,">,<",P[q+nI].x,",",P[q+nI].y,",",P[q+nI].z,">,<",N[q+nI].x,",",N[q+nI].y,",",N[q+nI].z,">,<",P[q+nI+1].x,",",P[q+nI+1].y,",",P[q+nI+1].z,">,<",N[q+nI+1].x,",",N[q+nI+1].y,",",N[q+nI+1].z,">}\n")
#else
smooth_triangle{P[q],N[q],P[q+1],N[q+1],P[q+nI+1],N[q+nI+1]}
smooth_triangle{P[q],N[q],P[q+nI],N[q+nI],P[q+nI+1],N[q+nI+1]}
#end
#else
#if (dofile=true)
#write(filehandle,"triangle{<",P[q].x,",",P[q].y,",",P[q].z,">,<",P[q+1].x,",",P[q+1].y,",",P[q+1].z,">,<",P[q+nI+1].x,",",P[q+nI+1].y,",",P[q+nI+1].z,">}\n")
#write(filehandle,"triangle{<",P[q].x,",",P[q].y,",",P[q].z,">,<",P[q+nI].x,",",P[q+nI].y,",",P[q+nI].z,">,<",P[q+nI+1].x,",",P[q+nI+1].y,",",P[q+nI+1].z,">}\n")
#else
triangle{P[q],P[q+1],P[q+nI+1]}
triangle{P[q],P[q+nI],P[q+nI+1]}
#end
#end
#end
#local q=q+1;#end
#end
// --------------------------------------
// End of the MakeBlade macro
//==============================================
//==============================================
// MakeGrassPatch macro
//==============================================
// The MakeGrassPatch macro creates a grass patch by creating
// individual blades with the MakeBlade macro
// The resulting patch is a mesh of nBlade*nBlade individual blades
// Its size is lPatch*lPatch
// The main tuning parameters are segBlade and nBlade (keep low to test)
// --------------------------------------
// Patch parameters
// --------------------------------------
/*
#declare lPatch=50; // size of patch
#declare nBlade=40; // number of blades per line
#declare ryBlade = 60; // initial y rotation of blade
#declare segBlade= 15; // number of blade segments
#declare lBlade = 15; // length of blade
#declare wBlade = 1; // width of blade at start
#declare wBladeEnd = 0.3; // width of blade at the end
#declare doSmooth=false; // true makes smooth triangles
#declare startBend = <0,1,0.3>; // bending of blade at start (<0,1,0>=no bending)
#declare vBend = <0,-1,2>; // direction of the force bending the blade (<0,1,1> = 45°)
#declare pwBend = 3; // bending power (how slowly the curve bends)
#declare rd = 459; // seed
#declare stdposBlade = 1; // standard deviation of blade position 0..1
#declare stdrotBlade = 360; // standard deviation of rotation
#declare stdBlade = 3; // standard deviation of blade scale;
#declare stdBend = 0; // standard deviation of blade bending;
#declare dofold = false; // true creates a central fold in the blade (twice more triangles)
#declare dofile = true; // true creates a mesh file
#declare fname = "fgrass.inc" // name of the mesh file to create
// --------------------------------------
*/
// -------------------------------------------------------------------------------------------------------
#macro MakeGrassPatch( lPatch, // 50, // size of patch
nBlade, // 40, // number of blades per line
ryBlade, // 60, // initial y rotation of blade
segBlade, // 15, // number of blade segments
lBlade, // 15, // length of blade
wBlade, // 1, // width of blade at start
wBladeEnd, // 0.3, // width of blade at the end
doSmooth, // 0 or 1, // true or 1 makes smooth triangles
startBend,//<0,1,0.3>,// bending of blade at start (<0,1,0>=no bending)
vBend, //<0,-1,2>, // direction of the force bending the blade (<0,1,1> = 45°)
pwBend, // 3, // bending power (how slowly the curve bends)
rd, //18264, // random seed
stdposBlade, // 0..1, // standard deviation of blade position
stdrotBlade, // 360, // standard deviation of rotation
stdBlade, // 3, // standard deviation of blade scale
stdBend, // 0, // standard deviation of blade bending
dofold, //0 or 1, // true or 1 creates a central fold in the blade (twice more triangles)
dofile, //0 or 1, // true or 1 creates a mesh file
fname // "grass_01.inc" // string, name of the mesh file to create
) //-------------------------------------------------------------------------------
#if(dofile=true)
#warning concat(fname," mesh file creation starts\n")
#fopen filehandle fname write // creates the leaf mesh (individual leaf)
#write(filehandle,"mesh{\n")
#else
mesh{
#end
#local iBlade=lPatch/(nBlade-1);
#local s1=seed(rd);
#local zCount=0;
#while (zCount<nBlade)
#local xCount=0;
#while (xCount<nBlade)
#local posBlade=<xCount*iBlade,0,zCount*iBlade>+<iBlade*(0.5-rand(s1))*stdposBlade,0,iBlade*(0.5-rand(s1))*stdposBlade>;
#local rotBlade=ryBlade+(0.5-rand(s1))*stdrotBlade;
// #local lBladetmp=max(lBlade*0.3,lBlade+(0.5-rand(s1))*stdlBlade);
#local scBlade=max(0.5,(0.5-rand(s1))*stdBlade*2);
#local lBladetmp=lBlade*scBlade;
#local xBladeStart=wBlade*scBlade;
#local xBladeEnd=wBladeEnd*scBlade;
#local zBladeStart=xBladeStart*0.5;
#local vBendtmp=vBend + <(0.5-rand(s1))*0.3,0.5-rand(s1),rand(s1)>*stdBend;
MakeBlade(doSmooth,posBlade,rotBlade,segBlade,lBladetmp,xBladeStart,xBladeEnd,zBladeStart,startBend,vBendtmp,pwBend,dofold,dofile)
#warning concat("blade ",str(zCount*nBlade+xCount+1,0,0),"/",str(nBlade*nBlade,0,0),"\n")
#local xCount=xCount+1;
#end
#local zCount=zCount+1;
#end
#if(dofile = true)
#write (filehandle,"translate <",-lPatch/2,",0,",-lPatch/2,">}\n")
#fclose filehandle
#warning concat(fname," file created\n")
#else
translate <-lPatch/2,0,-lPatch/2>
}
#end
#end
// --------------------------------------
// End of the MakeGrassPatch macro
//==============================================
//===============================================
// MakePrairie macro
// --------------------------------------
// The MakePrairie macro creates a prairie by collating patches
// along the z axis, starting with nxPrairie patches and adding addPatches patches
// at each line, so that the prairie gets wider
// Because the patch is a mesh object, you can have multiple copies of it without
// running out of memory too soon
// --------------------------------------
/*
#declare lPatch=50; //size of individual patches
#declare nxPrairie=3; //number of patches for the first line
#declare addPatches=1; //number of patches to add at each line
#declare nzPrairie=5; //number of lines of patches
#declare objectPatch=GrassPatch; //patch object
#declare rd=seed(779); // random seed
#declare stdscale=1; // stddev of scale
#declare stdrotate=1; // stddev of rotation
#declare doTest=false; // replaces the patch with a sphere
// --------------------------------------
*/
//-----------------------------------------------------------------------------------
#macro MakePrairie( lPatch, // 50, // size of individual patches
nxPrairie, // 3, // number of patches for the first line
addPatches, // 1, // number of patches to add at each line
nzPrairie, // 5, // number of lines of patches
objectPatch,// GrassPatch, // the name of the patch object
rd, //779, // random seed
stdscale, // 1, // stddev of scale
stdrotate, // 1, // stddev of rotation
doTest // 0 or 1, // replaces the patch with a sphere
) //---------------------------------------------------------------
union{
#local zCount=0;
#local nxCounttmp=nxPrairie;
#local s2=seed(rd);
#while (zCount<nzPrairie)
#local xCount=0;
#while (xCount<nxCounttmp)
#if (doTest=true)
// sphere{<-nxCounttmp*0.5+xCount,0,zCount>*lPatch,lPatch*0.5 pigment{Red} scale <1,0.2,1>}
sphere{0,lPatch*0.5 pigment{Red} scale <1,0.2,1>
scale (1+stdscale*rand(s2)) rotate y*360*(0.5-rand(rd))*stdrotate
translate <xCount-(nxCounttmp-1)*0.5,0,zCount>*lPatch}
#else
object{ objectPatch
scale (1+stdscale*rand(s2))
rotate y*360*(0.5-rand(s2))*stdrotate
translate <-(nxCounttmp-1)*0.5+xCount,0,zCount>*lPatch}
#end
#local xCount=xCount+1;
#end
#local nxCounttmp=nxCounttmp+addPatches;
#local zCount=zCount+1;
#end
}
#end
//-----------------------------------------------
// End of MakePrairie macro
//===============================================
#version makegrass_Inc_Temp;
#end
// End of "makegrass.inc" -----------------------

View file

@ -0,0 +1,266 @@
#declare MarbTeal_Inc_Temp=version;
/*
Persistence of Vision Raytracer Version 3.1
Teal marble color_map
*/
#declare M_MarbTeal =
color_map {
[0.000000 rgb <0.000000, 0.203922, 0.141176>]
[0.003922 rgb <0.000000, 0.219608, 0.141176>]
[0.007843 rgb <0.000000, 0.235294, 0.141176>]
[0.011765 rgb <0.000000, 0.250980, 0.156863>]
[0.015686 rgb <0.015686, 0.219608, 0.156863>]
[0.019608 rgb <0.015686, 0.235294, 0.156863>]
[0.023529 rgb <0.015686, 0.250980, 0.156863>]
[0.027451 rgb <0.015686, 0.250980, 0.172549>]
[0.031373 rgb <0.015686, 0.266667, 0.172549>]
[0.035294 rgb <0.015686, 0.266667, 0.188235>]
[0.039216 rgb <0.015686, 0.282353, 0.188235>]
[0.043137 rgb <0.015686, 0.282353, 0.203922>]
[0.047059 rgb <0.015686, 0.298039, 0.203922>]
[0.050980 rgb <0.031373, 0.266667, 0.172549>]
[0.054902 rgb <0.031373, 0.266667, 0.188235>]
[0.058824 rgb <0.031373, 0.282353, 0.188235>]
[0.062745 rgb <0.031373, 0.282353, 0.203922>]
[0.066667 rgb <0.031373, 0.298039, 0.188235>]
[0.070588 rgb <0.031373, 0.298039, 0.203922>]
[0.074510 rgb <0.031373, 0.298039, 0.219608>]
[0.078431 rgb <0.031373, 0.313726, 0.203922>]
[0.082353 rgb <0.031373, 0.313726, 0.219608>]
[0.086275 rgb <0.031373, 0.313726, 0.235294>]
[0.090196 rgb <0.031373, 0.329412, 0.235294>]
[0.094118 rgb <0.047059, 0.298039, 0.219608>]
[0.098039 rgb <0.047059, 0.313726, 0.219608>]
[0.101961 rgb <0.047059, 0.313726, 0.235294>]
[0.105882 rgb <0.047059, 0.329412, 0.235294>]
[0.109804 rgb <0.047059, 0.329412, 0.250980>]
[0.113725 rgb <0.047059, 0.345098, 0.235294>]
[0.117647 rgb <0.047059, 0.345098, 0.250980>]
[0.121569 rgb <0.047059, 0.360784, 0.250980>]
[0.125490 rgb <0.047059, 0.360784, 0.266667>]
[0.129412 rgb <0.062745, 0.345098, 0.250980>]
[0.133333 rgb <0.062745, 0.360784, 0.250980>]
[0.137255 rgb <0.062745, 0.360784, 0.266667>]
[0.141176 rgb <0.062745, 0.360784, 0.282353>]
[0.145098 rgb <0.062745, 0.376471, 0.266667>]
[0.149020 rgb <0.062745, 0.376471, 0.282353>]
[0.152941 rgb <0.062745, 0.392157, 0.266667>]
[0.156863 rgb <0.062745, 0.392157, 0.282353>]
[0.160784 rgb <0.062745, 0.392157, 0.298039>]
[0.164706 rgb <0.078431, 0.376471, 0.266667>]
[0.168627 rgb <0.078431, 0.376471, 0.282353>]
[0.172549 rgb <0.078431, 0.376471, 0.298039>]
[0.176471 rgb <0.078431, 0.392157, 0.282353>]
[0.180392 rgb <0.078431, 0.392157, 0.298039>]
[0.184314 rgb <0.078431, 0.392157, 0.313726>]
[0.188235 rgb <0.078431, 0.407843, 0.298039>]
[0.192157 rgb <0.078431, 0.407843, 0.313726>]
[0.196078 rgb <0.078431, 0.423529, 0.313726>]
[0.200000 rgb <0.078431, 0.423529, 0.329412>]
[0.203922 rgb <0.094118, 0.392157, 0.298039>]
[0.207843 rgb <0.094118, 0.392157, 0.313726>]
[0.211765 rgb <0.094118, 0.407843, 0.298039>]
[0.215686 rgb <0.094118, 0.407843, 0.313726>]
[0.219608 rgb <0.094118, 0.407843, 0.329412>]
[0.223529 rgb <0.094118, 0.423529, 0.313726>]
[0.227451 rgb <0.094118, 0.423529, 0.329412>]
[0.231373 rgb <0.094118, 0.423529, 0.345098>]
[0.235294 rgb <0.094118, 0.439216, 0.329412>]
[0.239216 rgb <0.094118, 0.439216, 0.345098>]
[0.243137 rgb <0.094118, 0.439216, 0.360784>]
[0.247059 rgb <0.094118, 0.454902, 0.360784>]
[0.250980 rgb <0.109804, 0.423529, 0.313726>]
[0.254902 rgb <0.109804, 0.423529, 0.329412>]
[0.258824 rgb <0.109804, 0.423529, 0.345098>]
[0.262745 rgb <0.109804, 0.439216, 0.329412>]
[0.266667 rgb <0.109804, 0.439216, 0.345098>]
[0.270588 rgb <0.109804, 0.439216, 0.360784>]
[0.274510 rgb <0.109804, 0.454902, 0.345098>]
[0.278431 rgb <0.109804, 0.454902, 0.360784>]
[0.282353 rgb <0.109804, 0.454902, 0.376471>]
[0.286275 rgb <0.109804, 0.470588, 0.376471>]
[0.290196 rgb <0.125490, 0.439216, 0.345098>]
[0.294118 rgb <0.125490, 0.439216, 0.360784>]
[0.298039 rgb <0.125490, 0.454902, 0.345098>]
[0.301961 rgb <0.125490, 0.454902, 0.360784>]
[0.305882 rgb <0.125490, 0.454902, 0.376471>]
[0.309804 rgb <0.125490, 0.454902, 0.392157>]
[0.313726 rgb <0.125490, 0.470588, 0.360784>]
[0.317647 rgb <0.125490, 0.470588, 0.376471>]
[0.321569 rgb <0.125490, 0.470588, 0.392157>]
[0.325490 rgb <0.125490, 0.486275, 0.392157>]
[0.329412 rgb <0.141176, 0.454902, 0.360784>]
[0.333333 rgb <0.141176, 0.454902, 0.376471>]
[0.337255 rgb <0.141176, 0.470588, 0.376471>]
[0.341176 rgb <0.141176, 0.470588, 0.392157>]
[0.345098 rgb <0.141176, 0.486275, 0.376471>]
[0.349020 rgb <0.141176, 0.486275, 0.392157>]
[0.352941 rgb <0.141176, 0.486275, 0.407843>]
[0.356863 rgb <0.141176, 0.501961, 0.407843>]
[0.360784 rgb <0.141176, 0.501961, 0.423529>]
[0.364706 rgb <0.156863, 0.470588, 0.392157>]
[0.368627 rgb <0.156863, 0.486275, 0.392157>]
[0.372549 rgb <0.156863, 0.486275, 0.407843>]
[0.376471 rgb <0.156863, 0.501961, 0.392157>]
[0.380392 rgb <0.156863, 0.501961, 0.407843>]
[0.384314 rgb <0.156863, 0.501961, 0.423529>]
[0.388235 rgb <0.156863, 0.517647, 0.423529>]
[0.392157 rgb <0.156863, 0.517647, 0.439216>]
[0.396078 rgb <0.172549, 0.486275, 0.407843>]
[0.400000 rgb <0.172549, 0.501961, 0.407843>]
[0.403922 rgb <0.172549, 0.501961, 0.423529>]
[0.407843 rgb <0.172549, 0.501961, 0.439216>]
[0.411765 rgb <0.172549, 0.517647, 0.423529>]
[0.415686 rgb <0.172549, 0.517647, 0.439216>]
[0.419608 rgb <0.172549, 0.517647, 0.454902>]
[0.423529 rgb <0.172549, 0.533333, 0.439216>]
[0.427451 rgb <0.172549, 0.533333, 0.454902>]
[0.431373 rgb <0.188235, 0.501961, 0.423529>]
[0.435294 rgb <0.188235, 0.501961, 0.439216>]
[0.439216 rgb <0.188235, 0.517647, 0.423529>]
[0.443137 rgb <0.188235, 0.517647, 0.439216>]
[0.447059 rgb <0.188235, 0.517647, 0.454902>]
[0.450980 rgb <0.188235, 0.533333, 0.439216>]
[0.454902 rgb <0.188235, 0.533333, 0.454902>]
[0.458824 rgb <0.188235, 0.533333, 0.470588>]
[0.462745 rgb <0.188235, 0.549020, 0.454902>]
[0.466667 rgb <0.188235, 0.549020, 0.470588>]
[0.470588 rgb <0.203922, 0.517647, 0.439216>]
[0.474510 rgb <0.203922, 0.533333, 0.439216>]
[0.478431 rgb <0.203922, 0.533333, 0.454902>]
[0.482353 rgb <0.203922, 0.533333, 0.470588>]
[0.486275 rgb <0.203922, 0.549020, 0.454902>]
[0.490196 rgb <0.203922, 0.549020, 0.470588>]
[0.494118 rgb <0.203922, 0.549020, 0.486275>]
[0.498039 rgb <0.203922, 0.564706, 0.470588>]
[0.501961 rgb <0.203922, 0.564706, 0.486275>]
[0.505882 rgb <0.219608, 0.533333, 0.454902>]
[0.509804 rgb <0.219608, 0.549020, 0.454902>]
[0.513726 rgb <0.219608, 0.549020, 0.470588>]
[0.517647 rgb <0.219608, 0.549020, 0.486275>]
[0.521569 rgb <0.219608, 0.564706, 0.470588>]
[0.525490 rgb <0.219608, 0.564706, 0.486275>]
[0.529412 rgb <0.219608, 0.564706, 0.501961>]
[0.533333 rgb <0.219608, 0.580392, 0.486275>]
[0.537255 rgb <0.219608, 0.580392, 0.501961>]
[0.541176 rgb <0.235294, 0.549020, 0.470588>]
[0.545098 rgb <0.235294, 0.549020, 0.486275>]
[0.549020 rgb <0.235294, 0.564706, 0.470588>]
[0.552941 rgb <0.235294, 0.564706, 0.486275>]
[0.556863 rgb <0.235294, 0.564706, 0.501961>]
[0.560784 rgb <0.235294, 0.580392, 0.486275>]
[0.564706 rgb <0.235294, 0.580392, 0.501961>]
[0.568627 rgb <0.235294, 0.580392, 0.517647>]
[0.572549 rgb <0.235294, 0.596078, 0.501961>]
[0.576471 rgb <0.250980, 0.564706, 0.486275>]
[0.580392 rgb <0.250980, 0.564706, 0.501961>]
[0.584314 rgb <0.250980, 0.580392, 0.486275>]
[0.588235 rgb <0.250980, 0.580392, 0.501961>]
[0.592157 rgb <0.250980, 0.580392, 0.517647>]
[0.596078 rgb <0.250980, 0.596078, 0.501961>]
[0.600000 rgb <0.250980, 0.596078, 0.533333>]
[0.603922 rgb <0.266667, 0.580392, 0.501961>]
[0.607843 rgb <0.266667, 0.596078, 0.517647>]
[0.611765 rgb <0.266667, 0.611765, 0.533333>]
[0.615686 rgb <0.282353, 0.596078, 0.533333>]
[0.619608 rgb <0.282353, 0.611765, 0.517647>]
[0.623529 rgb <0.282353, 0.611765, 0.549020>]
[0.627451 rgb <0.282353, 0.627451, 0.533333>]
[0.631373 rgb <0.298039, 0.611765, 0.533333>]
[0.635294 rgb <0.298039, 0.627451, 0.549020>]
[0.639216 rgb <0.298039, 0.643137, 0.564706>]
[0.643137 rgb <0.313726, 0.611765, 0.549020>]
[0.647059 rgb <0.313726, 0.627451, 0.564706>]
[0.650980 rgb <0.313726, 0.643137, 0.549020>]
[0.654902 rgb <0.313726, 0.643137, 0.580392>]
[0.658824 rgb <0.313726, 0.658824, 0.564706>]
[0.662745 rgb <0.329412, 0.627451, 0.580392>]
[0.666667 rgb <0.329412, 0.643137, 0.564706>]
[0.670588 rgb <0.329412, 0.643137, 0.596078>]
[0.674510 rgb <0.329412, 0.658824, 0.580392>]
[0.678431 rgb <0.345098, 0.643137, 0.580392>]
[0.682353 rgb <0.345098, 0.658824, 0.596078>]
[0.686275 rgb <0.345098, 0.674510, 0.580392>]
[0.690196 rgb <0.345098, 0.674510, 0.611765>]
[0.694118 rgb <0.360784, 0.658824, 0.580392>]
[0.698039 rgb <0.360784, 0.658824, 0.611765>]
[0.701961 rgb <0.360784, 0.674510, 0.596078>]
[0.705882 rgb <0.360784, 0.674510, 0.627451>]
[0.709804 rgb <0.360784, 0.690196, 0.611765>]
[0.713726 rgb <0.376471, 0.658824, 0.596078>]
[0.717647 rgb <0.376471, 0.674510, 0.611765>]
[0.721569 rgb <0.376471, 0.690196, 0.596078>]
[0.725490 rgb <0.376471, 0.690196, 0.627451>]
[0.729412 rgb <0.392157, 0.674510, 0.627451>]
[0.733333 rgb <0.392157, 0.690196, 0.611765>]
[0.737255 rgb <0.392157, 0.690196, 0.643137>]
[0.741176 rgb <0.392157, 0.705882, 0.627451>]
[0.745098 rgb <0.407843, 0.690196, 0.627451>]
[0.749020 rgb <0.407843, 0.705882, 0.643137>]
[0.752941 rgb <0.407843, 0.721569, 0.658824>]
[0.756863 rgb <0.423529, 0.690196, 0.643137>]
[0.760784 rgb <0.423529, 0.705882, 0.627451>]
[0.764706 rgb <0.423529, 0.705882, 0.658824>]
[0.768627 rgb <0.423529, 0.721569, 0.643137>]
[0.772549 rgb <0.423529, 0.721569, 0.674510>]
[0.776471 rgb <0.439216, 0.705882, 0.643137>]
[0.780392 rgb <0.439216, 0.705882, 0.674510>]
[0.784314 rgb <0.439216, 0.721569, 0.658824>]
[0.788235 rgb <0.439216, 0.737255, 0.674510>]
[0.792157 rgb <0.454902, 0.721569, 0.674510>]
[0.796078 rgb <0.454902, 0.737255, 0.658824>]
[0.800000 rgb <0.454902, 0.737255, 0.690196>]
[0.803922 rgb <0.470588, 0.721569, 0.658824>]
[0.807843 rgb <0.470588, 0.721569, 0.690196>]
[0.811765 rgb <0.470588, 0.737255, 0.674510>]
[0.815686 rgb <0.470588, 0.737255, 0.705882>]
[0.819608 rgb <0.470588, 0.752941, 0.690196>]
[0.823529 rgb <0.486275, 0.737255, 0.690196>]
[0.827451 rgb <0.486275, 0.752941, 0.674510>]
[0.831373 rgb <0.486275, 0.752941, 0.705882>]
[0.835294 rgb <0.501961, 0.737255, 0.705882>]
[0.839216 rgb <0.501961, 0.752941, 0.690196>]
[0.843137 rgb <0.501961, 0.752941, 0.721569>]
[0.847059 rgb <0.501961, 0.768627, 0.705882>]
[0.850980 rgb <0.517647, 0.737255, 0.690196>]
[0.854902 rgb <0.517647, 0.752941, 0.705882>]
[0.858824 rgb <0.517647, 0.768627, 0.721569>]
[0.862745 rgb <0.517647, 0.784314, 0.737255>]
[0.866667 rgb <0.533333, 0.768627, 0.705882>]
[0.870588 rgb <0.533333, 0.768627, 0.737255>]
[0.874510 rgb <0.533333, 0.784314, 0.721569>]
[0.878431 rgb <0.549020, 0.768627, 0.721569>]
[0.882353 rgb <0.549020, 0.784314, 0.737255>]
[0.886275 rgb <0.564706, 0.768627, 0.737255>]
[0.890196 rgb <0.564706, 0.784314, 0.752941>]
[0.894118 rgb <0.564706, 0.800000, 0.737255>]
[0.898039 rgb <0.564706, 0.800000, 0.768627>]
[0.901961 rgb <0.580392, 0.800000, 0.752941>]
[0.905882 rgb <0.580392, 0.815686, 0.768627>]
[0.909804 rgb <0.596078, 0.800000, 0.768627>]
[0.913725 rgb <0.596078, 0.815686, 0.752941>]
[0.917647 rgb <0.596078, 0.815686, 0.784314>]
[0.921569 rgb <0.611765, 0.800000, 0.752941>]
[0.925490 rgb <0.611765, 0.815686, 0.768627>]
[0.929412 rgb <0.611765, 0.831373, 0.784314>]
[0.933333 rgb <0.627451, 0.815686, 0.784314>]
[0.937255 rgb <0.627451, 0.831373, 0.800000>]
[0.941176 rgb <0.643137, 0.831373, 0.784314>]
[0.945098 rgb <0.643137, 0.847059, 0.800000>]
[0.949020 rgb <0.658824, 0.815686, 0.784314>]
[0.952941 rgb <0.658824, 0.831373, 0.800000>]
[0.956863 rgb <0.658824, 0.847059, 0.815686>]
[0.960784 rgb <0.674510, 0.847059, 0.800000>]
[0.964706 rgb <0.690196, 0.847059, 0.815686>]
[0.968627 rgb <0.690196, 0.862745, 0.831373>]
[0.972549 rgb <0.705882, 0.847059, 0.831373>]
[0.976471 rgb <0.721569, 0.862745, 0.831373>]
[0.980392 rgb <0.721569, 0.878431, 0.847059>]
[0.984314 rgb <0.737255, 0.862745, 0.847059>]
[0.988235 rgb <0.737255, 0.878431, 0.862745>]
[0.992157 rgb <0.752941, 0.878431, 0.847059>]
[0.996078 rgb <0.768627, 0.878431, 0.862745>]
}
#version MarbTeal_Inc_Temp;

View file

@ -0,0 +1,510 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: math.inc
// Last updated: 2004.07.23
// Description: This file contains various math macros and functions
#ifndef(MATH_INC_TEMP)
#declare MATH_INC_TEMP = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including math.inc\n"
#end
#include "functions.inc"
// --------------------------------------------------------
// Statistics macros: (some from variate.inc)
// --------------------------------------------------------
// Mean(rewritten, original from basemcr.inc by Margus Ramst)
#macro Mean(A)
#local N = dimension_size(A,1);
#local C = 0;
// (
// #while(C<N-1)
// A[C]+
// #local C=C+1;
// #end
// A[C])/N
#local V = 0;
#while(C < N)
#local V = V + A[C];
#local C=C+1;
#end
(V/N)
#end
// Standard deviation(rewritten, original from basemcr.inc by Margus Ramst)
#macro Std_Dev(A, M)
#local N = dimension_size(A,1);
#local C = 0;
// sqrt((
// #while(C<N-1)
// pow(A[C]-M,2)+
// #local C=C+1;
// #end
// pow(A[C]-M,2))/N)
#local V = 0;
#while(C < N)
#local V = V + pow(A[C] - M, 2);
#local C=C+1;
#end
sqrt(V/N)
#end
// Macros for statistical analysis
// Input: an array of values
// Output: a global array "StatisticsArray" is
// declared containing: N, Mean, Min, Max, StdDev
#macro GetStats(ValArr)
#local SquareSum=0; #local Sum=0;
#local Min=10e15; #local Max=-10e15;
#local N=dimension_size(ValArr,1);
#local I=0;
#while (I<N)
#local Val=ValArr[I];
#local Sum=Sum+Val;
#local SquareSum=SquareSum+(Val*Val);
#if (Val>Max)
#local Max=Val;
#end
#if (Val<Min)
#local Min=Val;
#end
#local I=I+1;
#end
#local Avg=Sum/N;
#local StdDev=sqrt((SquareSum/N)-Avg*Avg);
#debug concat("\nN = ",str(N,0,0),"\n")
#debug concat("Mean = ",str(Avg,0,-1),"\n")
#debug concat("Min = ",str(Min,0,-1),"\n")
#debug concat("Max = ",str(Max,0,-1),"\n")
#debug concat("StdDev = ",str(StdDev,0,-1),"\n")
#declare StatisticsArray=array[5]{N,Avg,Min,Max,StdDev}
#end
// Input: an array with values and the wanted amount of intervals / bins.
// Output: a global array "HistogramArray" is declared,
// it is a two dimensional array, the first value is the center
// of the interval / bin, the second the amount of values
// in that interval.
#macro Histogram(ValArr, Intervals)
GetStats(ValArr)
#local Min=StatisticsArray[2];
#local Max=StatisticsArray[3];
#local Intervals=int(Intervals);
#local Width=(Max-Min)/(Intervals);
#local HistArr=array[Intervals][2]
#local I=0;
#while(I<Intervals)
#local HistArr[I][0]=Min+Width*(I+0.5); // center of interval
#local HistArr[I][1]=0;
#local I=I+1;
#end
#local I=0;
#while (I<N) // 'put' the values into the right
#local Index=int((ValArr[I]-Min)/Width); // intervals and count them.
#if (Index>=Intervals)
#local Index=Index-1;
#end
#local HistArr[Index][1]=HistArr[Index][1]+1;
#local I=I+1;
#end
#declare HistogramArray=HistArr
#end
// --------------------------------------------------------
// Trig:
// --------------------------------------------------------
#declare sind = function (x) {sin(radians(x))}
#declare cosd = function (x) {cos(radians(x))}
#declare tand = function (x) {tan(radians(x))}
#declare asind = function (x) {degrees(asin(x))}
#declare acosd = function (x) {degrees(acos(x))}
#declare atand = function (x) {degrees(atan(x))}
#declare atan2d = function (x, y) {degrees(atan2(x, y))}
// --------------------------------------------------------
// Misc:
// --------------------------------------------------------
#declare max3 = function (x, y, z) {max(x,y,z)}
#declare min3 = function (x, y, z) {min(x,y,z)}
#declare even = function(x) {select(mod(x, 2), 0, 1, 0)}
#declare odd = function(x) {select(mod(x, 2), 1, 0, 1)}
// Squares the value
#declare f_sqr = function (x) {(x*x)}
// Returns the sign of a value
#declare sgn = function (x) {select(x,-1, 0, 1)}
//#declare sgn = function (x) {x/abs(x)}
// Range handling
// clips a number (x) to the range [Min, Max] ([y, z]). Values above Max return Max,
// below Min return Min.
#declare clip = function (x, y, z) {min(z, max(x, y))}
// Clamps a number (x) to the range [Min, Max] ([y, z]).
// Values outside this range wrap around.
#declare clamp = function (x, y, z) {mod(x - y, z - y) + select(mod(x - y, z - y), z, y)}
// Adjusts input values (x) in the range [0, 1] to output values in range [Rmn, Rmx] ([y, z]).
#declare adj_range = function (x, y, z) {x*(z - y) + y}
// Adjusts values in a specified range [Rmn, Rmx] to the specified range [Min, Max]
#declare adj_range2 =
function (x, y, z, _Math_INC_OMn, _Math_INC_OMx) {
((x - y)/(z - y))*(_Math_INC_OMx - _Math_INC_OMn) + _Math_INC_OMn
}
// Interpolate author: Margus Ramst
// Interpolation
// GC - global current
// GS - global start
// GE - global end
// TS - target start
// TE - target end
// Method - interpolation method:
// Method = 0 - cosine interpolation
// Method > 0 - exponential (1 - linear, etc)
#macro Interpolate(GC, GS, GE, TS, TE, Method)
(#if(Method!=0)
(TS+(TE-TS)*pow((GC-GS)/(GE-GS),Method))
#else
#local X=(GC-GS)/(GE-GS);
#local F=(1-cos(X*pi))*.5;
(TS*(1-F)+TE*F)
#end)
#end
// --------------------------------------------------------
// Vector macros:
// --------------------------------------------------------
// Squares the components of a vector
#macro VSqr(V) (V*V) #end
// Raises the components of a vector to a given power
#macro VPow(V, P) <pow(V.x, P), pow(V.y, P), pow(V.z, P)> #end
#macro VPow5D(V, P) <pow(V.x, P), pow(V.y, P), pow(V.z, P), pow(V.filter, P), pow(V.transmit, P)> #end
// Returns true if vectors are equal, otherwise false
#macro VEq(V1, V2) (V1.x = V2.x & V1.y = V2.y & V1.z = V2.z) #end
#macro VEq5D(V1, V2)
( V1.x = V2.x
& V1.y = V2.y
& V1.z = V2.z
& V1.filter = V2.filter
& V1.transmit = V2.transmit)
#end
// Returns true if vector is <0,0,0>, otherwise false
#macro VZero(V1) (V1.x = 0 & V1.y = 0 & V1.z = 0) #end
// Returns true if vector is <0,0,0,0,0>, otherwise false
#macro VZero5D(V1) (V1.x = 0 & V1.y = 0 & V1.z = 0 & V1.filter = 0 & V1.transmit = 0) #end
#macro VLength5D(V) sqrt(V.x*V.x + V.y*V.y + V.z*V.z + V.filter*V.filter + V.transmit*V.transmit) #end
#macro VNormalize5D(V) (V/sqrt(V.x*V.x + V.y*V.y + V.z*V.z + V.filter*V.filter + V.transmit*V.transmit)) #end
#macro VDot5D(V1, V2) (V1.x*V2.x + V1.y*V2.y + V1.z*V2.z + V1.filter*V2.filter + V1.transmit*V2.transmit) #end
// Cosine of angle between V1 and V2
#macro VCos_Angle(V1, V2) vdot(vnormalize(V1), vnormalize(V2)) #end
// Angle in radians between V1 and V2
#macro VAngle(V1, V2) acos(min(1, vdot(vnormalize(V1), vnormalize(V2)))) #end
// Angle in degrees between V1 and V2
#macro VAngleD(V1, V2) degrees(acos(min(1,vdot(vnormalize(V1), vnormalize(V2))))) #end
// VRotation() will find the rotation angle from V1 to V2
// around Axis. Axis should be perpendicular to both V1
// and V2. The output will be in the range between -pi and
// pi radians or between -180 degrees and 180 degrees if
// you are using the degree version. However, if Axis is
// set to <0,0,0> the output will always be positive or
// zero, the same result you will get with the VAngle() macros.
// Author: Rune S. Johansen
#macro VRotation(V1, V2, Axis)
(acos(min(vdot(vnormalize(V1),vnormalize(V2)),1))
*(vdot(Axis,vcross(V1,V2))<0?-1:1))
#end
#macro VRotationD(V1, V2, Axis)
(degrees(acos(min(vdot(vnormalize(V1),vnormalize(V2)),1)))
*(vdot(Axis,vcross(V1,V2))<0?-1:1))
#end
// Distance between V1 and V2
#macro VDist(V1, V2) vlength(V1 - V2) #end
// Returns a vector perpendicular to V
// Author: Tor Olav Kristensen
#macro VPerp_To_Vector(v0)
#if (vlength(v0) = 0)
#local vN = <0, 0, 0>;
#else
#local Dm = min(abs(v0.x), abs(v0.y), abs(v0.z));
#if (abs(v0.z) = Dm)
#local vN = vnormalize(vcross(v0, z));
#else
#if (abs(v0.y) = Dm)
#local vN = vnormalize(vcross(v0, y));
#else
#local vN = vnormalize(vcross(v0, x));
#end
#end
#end
vN
#end
// Returns a vector perpendicular to V1 and V2
#macro VPerp_To_Plane(V1, V2) (vnormalize(vcross(V1, V2))) #end
// Find a vector perpendicular to Axis and in the plane of
// V1 and Axis. In other words, the new vector is a version
// of V1 adjusted to be perpendicular to Axis.
#macro VPerp_Adjust(V, Axis)
vnormalize(vcross(vcross(Axis, V), Axis))
#end
// Projects a vector onto the plane defined by Axis.
// Based on code by Ron Parker
#macro VProject_Plane(V, Axis)
#local A = vnormalize(Axis);
(V - vdot(V, A)*A)
#end
// Projects a vector onto the an axis.
// Based on code by Ron Parker
#macro VProject_Axis(V, Axis)
(Axis*vdot(V, Axis)/vdot(Axis, Axis))
#end
// Smallest component of V
#macro VMin(V) (min3(V.x, V.y, V.z)) #end
// Largest component of V
#macro VMax(V) (max3(V.x, V.y, V.z)) #end
// Creates a vector going in the direction of the
// given vector with the specified length
#macro VWith_Len(V, Len) (Len*vnormalize(V)) #end
// --------------------------------------------------------
// Vector analysis macros
// --------------------------------------------------------
// Authors: Christoph Hormann and Tor Olav Kristensen
// Various functions of vector analysis in form of macros
// that can be used in user defined functions or expressions
//
// all macros make use of a constant named
// '__Gradient_Fn_Accuracy_' for numerical approximation
// of the derivatives.
// This constant can be changed with the
// 'SetGradientAccuracy()' macro, the default value is 0.001.
//
// Because vector functions can only be created as pigment
// or transform/spline functions and can not be passed as
// a macro parameter there is no fn_Curl() function and the
// divergence and curl macros use 3 float functions for
// defining the vector field.
#ifndef (__Gradient_Fn_Accuracy_)
#declare __Gradient_Fn_Accuracy_=0.001;
#end
#macro SetGradientAccuracy(Value)
#declare __Gradient_Fn_Accuracy_=abs(Value);
#end
// macro calculating the gradient of a function
// as a function
//
// Parameters:
// __Gradient_Fn: function to calculate the gradient from
//
// Output: the length of the gradient as a function
#macro fn_Gradient(__Gradient_Fn)
function {
f_r(
__Gradient_Fn(x + __Gradient_Fn_Accuracy_, y, z) - __Gradient_Fn(x - __Gradient_Fn_Accuracy_, y, z),
__Gradient_Fn(x, y + __Gradient_Fn_Accuracy_, z) - __Gradient_Fn(x, y - __Gradient_Fn_Accuracy_, z),
__Gradient_Fn(x, y, z + __Gradient_Fn_Accuracy_) - __Gradient_Fn(x, y, z - __Gradient_Fn_Accuracy_)
)/(2*__Gradient_Fn_Accuracy_)
}
#end
// macro calculating the gradient of a function
// in one direction as a function
//
// Parameters:
// __Gradient_Fn: function to calculate the gradient from
// Dir: direction to calculate the gradient
//
// Output: the gradient in that direction as a function
#macro fn_Gradient_Directional(__Gradient_Fn, Dir)
#local Dirx = vnormalize(Dir).x;
#local Diry = vnormalize(Dir).y;
#local Dirz = vnormalize(Dir).z;
function {
(
(__Gradient_Fn(x + __Gradient_Fn_Accuracy_, y, z) - __Gradient_Fn(x - __Gradient_Fn_Accuracy_, y, z))*Dirx +
(__Gradient_Fn(x, y + __Gradient_Fn_Accuracy_, z) - __Gradient_Fn(x, y - __Gradient_Fn_Accuracy_, z))*Diry +
(__Gradient_Fn(x, y, z + __Gradient_Fn_Accuracy_) - __Gradient_Fn(x, y, z - __Gradient_Fn_Accuracy_))*Dirz
)/(2*__Gradient_Fn_Accuracy_)
}
#end
// macro calculating the divergence of a (vector) function
// as a function
//
// Parameters:
// __Gradient_Fnx,
// __Gradient_Fny,
// __Gradient_Fnz: x, y and z components of a vector function
//
// Output: the divergence as a function
#macro fn_Divergence(__Gradient_Fnx, __Gradient_Fny, __Gradient_Fnz)
function {
(
__Gradient_Fnx(x + __Gradient_Fn_Accuracy_, y, z) - __Gradient_Fnx(x - __Gradient_Fn_Accuracy_, y, z)+
__Gradient_Fny(x, y + __Gradient_Fn_Accuracy_, z) - __Gradient_Fny(x, y - __Gradient_Fn_Accuracy_, z)+
__Gradient_Fnz(x, y, z + __Gradient_Fn_Accuracy_) - __Gradient_Fnz(x, y, z - __Gradient_Fn_Accuracy_)
)/(2*__Gradient_Fn_Accuracy_)
}
#end
// macro calculating the gradient of a function
// as a vector expression
//
// Parameters:
// __Gradient_Fn: function to calculate the gradient from
// p0: point where to calculate the gradient
//
// Output: the gradient as a vector expression
#macro vGradient(__Gradient_Fn, p0)
#local p0x=p0.x;
#local p0y=p0.y;
#local p0z=p0.z;
(
<
__Gradient_Fn(p0x + __Gradient_Fn_Accuracy_, p0y, p0z) - __Gradient_Fn(p0x - __Gradient_Fn_Accuracy_, p0y, p0z),
__Gradient_Fn(p0x, p0y + __Gradient_Fn_Accuracy_, p0z) - __Gradient_Fn(p0x, p0y - __Gradient_Fn_Accuracy_, p0z),
__Gradient_Fn(p0x, p0y, p0z + __Gradient_Fn_Accuracy_) - __Gradient_Fn(p0x, p0y, p0z - __Gradient_Fn_Accuracy_)
>/(2*__Gradient_Fn_Accuracy_)
)
#end
// macro calculating the curl of a (vector) function
// as a vector expression
//
// Parameters:
// __Gradient_Fnx,
// __Gradient_Fny,
// __Gradient_Fnz: x, y and z components of a vector function
// p0: point where to calculate the curl
//
// Output: the curl as a vector expression
#macro vCurl(__Gradient_Fnx, __Gradient_Fny, __Gradient_Fnz, p0)
#local p0x=p0.x;
#local p0y=p0.y;
#local p0z=p0.z;
(
<
__Gradient_Fnz(p0x, p0y + __Gradient_Fn_Accuracy_, p0z) - __Gradient_Fnz(p0x, p0y - __Gradient_Fn_Accuracy_, p0z) -
__Gradient_Fny(p0x, p0y, p0z + __Gradient_Fn_Accuracy_) + __Gradient_Fny(p0x, p0y, p0z - __Gradient_Fn_Accuracy_),
__Gradient_Fnx(p0x, p0y, p0z + __Gradient_Fn_Accuracy_) - __Gradient_Fnx(p0x, p0y, p0z - __Gradient_Fn_Accuracy_) -
__Gradient_Fnz(p0x + __Gradient_Fn_Accuracy_, p0y, p0z) + __Gradient_Fnz(p0x - __Gradient_Fn_Accuracy_, p0y, p0z),
__Gradient_Fny(p0x + __Gradient_Fn_Accuracy_, p0y, p0z) - __Gradient_Fny(p0x - __Gradient_Fn_Accuracy_, p0y, p0z) -
__Gradient_Fnx(p0x, p0y + __Gradient_Fn_Accuracy_, p0z) + __Gradient_Fnx(p0x, p0y - __Gradient_Fn_Accuracy_, p0z)
>/(2*__Gradient_Fn_Accuracy_)
)
#end
// macro calculating the divergence of a (vector) function
// as a float expression
//
// Parameters:
// __Gradient_Fnx,
// __Gradient_Fny,
// __Gradient_Fnz: x, y and z components of a vector function
// p0: point where to calculate the divergence
//
// Output: the divergence as a float expression
#macro Divergence(__Gradient_Fnx, __Gradient_Fny, __Gradient_Fnz, p0)
#local p0x=p0.x;
#local p0y=p0.y;
#local p0z=p0.z;
(
(
__Gradient_Fnx(p0x + __Gradient_Fn_Accuracy_, p0y, p0z) - __Gradient_Fnx(p0x - __Gradient_Fn_Accuracy_, p0y, p0z)+
__Gradient_Fny(p0x, p0y + __Gradient_Fn_Accuracy_, p0z) - __Gradient_Fny(p0x, p0y - __Gradient_Fn_Accuracy_, p0z)+
__Gradient_Fnz(p0x, p0y, p0z + __Gradient_Fn_Accuracy_) - __Gradient_Fnz(p0x, p0y, p0z - __Gradient_Fn_Accuracy_)
)/(2*__Gradient_Fn_Accuracy_)
)
#end
// macro calculating the length of the gradient
// of a function as a float expression
//
// Parameters:
// __Gradient_Fn: function to calculate the gradient from
// p0: point where to calculate the gradient
//
// Output: the length of the gradient as a float expression
#macro Gradient_Length(__Gradient_Fn, p0)
vlength(vGradient( function { __Gradient_Fn(x, y, z) } , p0))
#end
// macro calculating the gradient of a function
// in one direction as a float expression
//
// Parameters:
// __Gradient_Fn: function to calculate the gradient from
// p0: point where to calculate the gradient
// Dir: direction to calculate the gradient
//
// Output: the gradient in that direction as a float expression
#macro Gradient_Directional(__Gradient_Fn, p0, Dir)
vdot(
vGradient( function { __Gradient_Fn(x, y, z) }, p0),
vnormalize(Dir)
)
#end
#version MATH_INC_TEMP;
#end//math.inc

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,272 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
#ifndef(Metals_Inc_Temp)
#declare Metals_Inc_Temp=version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
# debug "including metals.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.1
Metallic pigments, finishes, and textures.
*****************************************************************************
BASIC METAL COLORS
*****************************************************************************
Note: Describing metallic textures is difficult, at best. The reflectivity
and other qualities make them highly dependant on lighting and surroundings.
The following notes are intended as a rough guide only.
P_Brass1: Dark brown bronze.
P_Brass2: Somewhat lighter brown than Brass4. Old penny, in soft finishes.
P_Brass3: Used by Steve Anger's Polished_Brass. Slightly coppery.
P_Brass4: A little yellower than Brass1.
P_Brass5: Very light bronze, ranges from med tan to almost white.
P_Copper1: bronze-like. Best in finish #C.
P_Copper2: slightly brownish copper/bronze. Best in finishes #B-#D.
P_Copper3: reddish-brown copper. Best in finishes #C-#E.
P_Copper4: pink copper, like new tubing. Best in finishes #C-#E.
P_Copper5: Bronze in softer finishes, gold in harder finishes.
P_Chrome1: 20% Gray. Used in Steve Anger's Polished_Chrome.
P_Chrome2: Slightly blueish 60% gray. Good steel w/finish #A
P_Chrome3: 50% neutral gray.
P_Chrome4: 75% neutral gray.
P_Chrome5: 95% neutral gray.
P_Silver1: Yellowish silverplate. Somewhat tarnished looking.
P_Silver2: Not quite as yellowish as Silver1 but more so than Silver3.
P_Silver3: Reasonably neutral silver.
P_Silver4: REDUNDANT (unused)
P_Silver5: REDUNDANT (unused)
*/
#include "golds.inc"
#declare P_Brass1 = color rgb <0.30, 0.20, 0.10>;
#declare P_Brass2 = color rgb <0.50, 0.35, 0.25>;
#declare P_Brass3 = color rgb <0.58, 0.42, 0.20>;
#declare P_Brass4 = color rgb <0.65, 0.50, 0.25>;
#declare P_Brass5 = color rgb <0.70, 0.55, 0.40>;
#declare P_Copper1 = color rgb <0.40, 0.20, 0.15>;
#declare P_Copper2 = color rgb <0.50, 0.25, 0.15>;
#declare P_Copper3 = color rgb <0.60, 0.30, 0.15>;
#declare P_Copper4 = color rgb <0.70, 0.25, 0.15>;
#declare P_Copper5 = color rgb <0.65, 0.35, 0.15>;
#declare P_Chrome1 = color rgb <0.20, 0.20, 0.20>;
#declare P_Chrome2 = color rgb <0.39, 0.41, 0.43>;
#declare P_Chrome3 = color rgb <0.50, 0.50, 0.50>;
#declare P_Chrome4 = color rgb <0.75, 0.75, 0.75>;
#declare P_Chrome5 = color rgb <0.95, 0.95, 0.95>;
#declare P_Silver1 = color rgb <0.94, 0.93, 0.80>;
#declare P_Silver2 = color rgb <0.94, 0.93, 0.85>;
#declare P_Silver3 = color rgb <0.94, 0.93, 0.90>;
#declare P_Silver4 = color rgb <0.95, 0.91, 0.91>;
#declare P_Silver5 = color rgb <0.91, 0.95, 0.91>;
//*****************************************************************************
// BASIC METAL FINISHES
//*****************************************************************************
// F_MetalA : Very soft and dull.
// F_MetalB : Fairly soft and dull.
// F_MetalC : Medium reflectivity. Holds color well.
// F_MetalD : Highly hard and polished. High reflectivity.
// F_MetalE : Very highly polished & reflective.
#declare F_MetalA =
finish {
ambient 0.35
brilliance 2
diffuse 0.3
metallic
specular 0.80
roughness 1/20
reflection 0.1
}
#declare F_MetalB =
finish {
ambient 0.30
brilliance 3
diffuse 0.4
metallic
specular 0.70
roughness 1/60
reflection 0.25
}
#declare F_MetalC =
finish {
ambient 0.25
brilliance 4
diffuse 0.5
metallic
specular 0.80
roughness 1/80
reflection 0.5
}
#declare F_MetalD =
finish {
ambient 0.15
brilliance 5
diffuse 0.6
metallic
specular 0.80
roughness 1/100
reflection 0.65
}
#declare F_MetalE =
finish {
ambient 0.1
brilliance 6
diffuse 0.7
metallic
specular 0.80
roughness 1/120
reflection 0.8
}
//*****************************************************************************
// METAL TEXTURES
//*****************************************************************************
// BRASSES
#declare T_Brass_1A = texture { pigment { P_Brass1 } finish { F_MetalA } }
#declare T_Brass_1B = texture { pigment { P_Brass1 } finish { F_MetalB } }
#declare T_Brass_1C = texture { pigment { P_Brass1 } finish { F_MetalC } }
#declare T_Brass_1D = texture { pigment { P_Brass1 } finish { F_MetalD } }
#declare T_Brass_1E = texture { pigment { P_Brass1 } finish { F_MetalE } }
#declare T_Brass_2A = texture { pigment { P_Brass2 } finish { F_MetalA } }
#declare T_Brass_2B = texture { pigment { P_Brass2 } finish { F_MetalB } }
#declare T_Brass_2C = texture { pigment { P_Brass2 } finish { F_MetalC } }
#declare T_Brass_2D = texture { pigment { P_Brass2 } finish { F_MetalD } }
#declare T_Brass_2E = texture { pigment { P_Brass2 } finish { F_MetalE } }
#declare T_Brass_3A = texture { pigment { P_Brass3 } finish { F_MetalA } }
#declare T_Brass_3B = texture { pigment { P_Brass3 } finish { F_MetalB } }
#declare T_Brass_3C = texture { pigment { P_Brass3 } finish { F_MetalC } }
#declare T_Brass_3D = texture { pigment { P_Brass3 } finish { F_MetalD } }
#declare T_Brass_3E = texture { pigment { P_Brass3 } finish { F_MetalE } }
#declare T_Brass_4A = texture { pigment { P_Brass4 } finish { F_MetalA } }
#declare T_Brass_4B = texture { pigment { P_Brass4 } finish { F_MetalB } }
#declare T_Brass_4C = texture { pigment { P_Brass4 } finish { F_MetalC } }
#declare T_Brass_4D = texture { pigment { P_Brass4 } finish { F_MetalD } }
#declare T_Brass_4E = texture { pigment { P_Brass4 } finish { F_MetalE } }
#declare T_Brass_5A = texture { pigment { P_Brass5 } finish { F_MetalA } }
#declare T_Brass_5B = texture { pigment { P_Brass5 } finish { F_MetalB } }
#declare T_Brass_5C = texture { pigment { P_Brass5 } finish { F_MetalC } }
#declare T_Brass_5D = texture { pigment { P_Brass5 } finish { F_MetalD } }
#declare T_Brass_5E = texture { pigment { P_Brass5 } finish { F_MetalE } }
// COPPERS & BRONZES
#declare T_Copper_1A = texture { pigment { P_Copper1 } finish { F_MetalA } }
#declare T_Copper_1B = texture { pigment { P_Copper1 } finish { F_MetalB } }
#declare T_Copper_1C = texture { pigment { P_Copper1 } finish { F_MetalC } }
#declare T_Copper_1D = texture { pigment { P_Copper1 } finish { F_MetalD } }
#declare T_Copper_1E = texture { pigment { P_Copper1 } finish { F_MetalE } }
#declare T_Copper_2A = texture { pigment { P_Copper2 } finish { F_MetalA } }
#declare T_Copper_2B = texture { pigment { P_Copper2 } finish { F_MetalB } }
#declare T_Copper_2C = texture { pigment { P_Copper2 } finish { F_MetalC } }
#declare T_Copper_2D = texture { pigment { P_Copper2 } finish { F_MetalD } }
#declare T_Copper_2E = texture { pigment { P_Copper2 } finish { F_MetalE } }
#declare T_Copper_3A = texture { pigment { P_Copper3 } finish { F_MetalA } }
#declare T_Copper_3B = texture { pigment { P_Copper3 } finish { F_MetalB } }
#declare T_Copper_3C = texture { pigment { P_Copper3 } finish { F_MetalC } }
#declare T_Copper_3D = texture { pigment { P_Copper3 } finish { F_MetalD } }
#declare T_Copper_3E = texture { pigment { P_Copper3 } finish { F_MetalE } }
#declare T_Copper_4A = texture { pigment { P_Copper4 } finish { F_MetalA } }
#declare T_Copper_4B = texture { pigment { P_Copper4 } finish { F_MetalB } }
#declare T_Copper_4C = texture { pigment { P_Copper4 } finish { F_MetalC } }
#declare T_Copper_4D = texture { pigment { P_Copper4 } finish { F_MetalD } }
#declare T_Copper_4E = texture { pigment { P_Copper4 } finish { F_MetalE } }
#declare T_Copper_5A = texture { pigment { P_Copper5 } finish { F_MetalA } }
#declare T_Copper_5B = texture { pigment { P_Copper5 } finish { F_MetalB } }
#declare T_Copper_5C = texture { pigment { P_Copper5 } finish { F_MetalC } }
#declare T_Copper_5D = texture { pigment { P_Copper5 } finish { F_MetalD } }
#declare T_Copper_5E = texture { pigment { P_Copper5 } finish { F_MetalE } }
// CHROMES & STEELS
#declare T_Chrome_1A = texture { pigment { P_Chrome1 } finish { F_MetalA } }
#declare T_Chrome_1B = texture { pigment { P_Chrome1 } finish { F_MetalB } }
#declare T_Chrome_1C = texture { pigment { P_Chrome1 } finish { F_MetalC } }
#declare T_Chrome_1D = texture { pigment { P_Chrome1 } finish { F_MetalD } }
#declare T_Chrome_1E = texture { pigment { P_Chrome1 } finish { F_MetalE } }
#declare T_Chrome_2A = texture { pigment { P_Chrome2 } finish { F_MetalA } }
#declare T_Chrome_2B = texture { pigment { P_Chrome2 } finish { F_MetalB } }
#declare T_Chrome_2C = texture { pigment { P_Chrome2 } finish { F_MetalC } }
#declare T_Chrome_2D = texture { pigment { P_Chrome2 } finish { F_MetalD } }
#declare T_Chrome_2E = texture { pigment { P_Chrome2 } finish { F_MetalE } }
#declare T_Chrome_3A = texture { pigment { P_Chrome3 } finish { F_MetalA } }
#declare T_Chrome_3B = texture { pigment { P_Chrome3 } finish { F_MetalB } }
#declare T_Chrome_3C = texture { pigment { P_Chrome3 } finish { F_MetalC } }
#declare T_Chrome_3D = texture { pigment { P_Chrome3 } finish { F_MetalD } }
#declare T_Chrome_3E = texture { pigment { P_Chrome3 } finish { F_MetalE } }
#declare T_Chrome_4A = texture { pigment { P_Chrome4 } finish { F_MetalA } }
#declare T_Chrome_4B = texture { pigment { P_Chrome4 } finish { F_MetalB } }
#declare T_Chrome_4C = texture { pigment { P_Chrome4 } finish { F_MetalC } }
#declare T_Chrome_4D = texture { pigment { P_Chrome4 } finish { F_MetalD } }
#declare T_Chrome_4E = texture { pigment { P_Chrome4 } finish { F_MetalE } }
#declare T_Chrome_5A = texture { pigment { P_Chrome5 } finish { F_MetalA } }
#declare T_Chrome_5B = texture { pigment { P_Chrome5 } finish { F_MetalB } }
#declare T_Chrome_5C = texture { pigment { P_Chrome5 } finish { F_MetalC } }
#declare T_Chrome_5D = texture { pigment { P_Chrome5 } finish { F_MetalD } }
#declare T_Chrome_5E = texture { pigment { P_Chrome5 } finish { F_MetalE } }
// SILVERS
#declare T_Silver_1A = texture { pigment { P_Silver1 } finish { F_MetalA } }
#declare T_Silver_1B = texture { pigment { P_Silver1 } finish { F_MetalB } }
#declare T_Silver_1C = texture { pigment { P_Silver1 } finish { F_MetalC } }
#declare T_Silver_1D = texture { pigment { P_Silver1 } finish { F_MetalD } }
#declare T_Silver_1E = texture { pigment { P_Silver1 } finish { F_MetalE } }
#declare T_Silver_2A = texture { pigment { P_Silver2 } finish { F_MetalA } }
#declare T_Silver_2B = texture { pigment { P_Silver2 } finish { F_MetalB } }
#declare T_Silver_2C = texture { pigment { P_Silver2 } finish { F_MetalC } }
#declare T_Silver_2D = texture { pigment { P_Silver2 } finish { F_MetalD } }
#declare T_Silver_2E = texture { pigment { P_Silver2 } finish { F_MetalE } }
#declare T_Silver_3A = texture { pigment { P_Silver3 } finish { F_MetalA } }
#declare T_Silver_3B = texture { pigment { P_Silver3 } finish { F_MetalB } }
#declare T_Silver_3C = texture { pigment { P_Silver3 } finish { F_MetalC } }
#declare T_Silver_3D = texture { pigment { P_Silver3 } finish { F_MetalD } }
#declare T_Silver_3E = texture { pigment { P_Silver3 } finish { F_MetalE } }
#declare T_Silver_4A = texture { pigment { P_Silver4 } finish { F_MetalA } }
#declare T_Silver_4B = texture { pigment { P_Silver4 } finish { F_MetalB } }
#declare T_Silver_4C = texture { pigment { P_Silver4 } finish { F_MetalC } }
#declare T_Silver_4D = texture { pigment { P_Silver4 } finish { F_MetalD } }
#declare T_Silver_4E = texture { pigment { P_Silver4 } finish { F_MetalE } }
#declare T_Silver_5A = texture { pigment { P_Silver5 } finish { F_MetalA } }
#declare T_Silver_5B = texture { pigment { P_Silver5 } finish { F_MetalB } }
#declare T_Silver_5C = texture { pigment { P_Silver5 } finish { F_MetalC } }
#declare T_Silver_5D = texture { pigment { P_Silver5 } finish { F_MetalD } }
#declare T_Silver_5E = texture { pigment { P_Silver5 } finish { F_MetalE } }
#version Metals_Inc_Temp;
#end

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

View file

@ -0,0 +1,266 @@
#declare Orngwood_Inc_Temp=version;
/*
Persistence of Vision Raytracer Version 3.1
Orange wood color_map
*/
#declare M_Orangewood =
color_map {
[0.000000 rgb <0.470588, 0.219608, 0.000000>]
[0.003922 rgb <0.470588, 0.250980, 0.000000>]
[0.007843 rgb <0.501961, 0.188235, 0.000000>]
[0.011765 rgb <0.501961, 0.282353, 0.000000>]
[0.015686 rgb <0.533333, 0.219608, 0.000000>]
[0.019608 rgb <0.533333, 0.250980, 0.000000>]
[0.023529 rgb <0.533333, 0.250980, 0.031373>]
[0.027451 rgb <0.580392, 0.188235, 0.000000>]
[0.031373 rgb <0.580392, 0.219608, 0.000000>]
[0.035294 rgb <0.580392, 0.219608, 0.031373>]
[0.039216 rgb <0.580392, 0.250980, 0.000000>]
[0.043137 rgb <0.580392, 0.250980, 0.031373>]
[0.047059 rgb <0.580392, 0.282353, 0.000000>]
[0.050980 rgb <0.580392, 0.282353, 0.031373>]
[0.054902 rgb <0.580392, 0.313726, 0.000000>]
[0.058824 rgb <0.611765, 0.219608, 0.000000>]
[0.062745 rgb <0.611765, 0.250980, 0.000000>]
[0.066667 rgb <0.611765, 0.250980, 0.031373>]
[0.070588 rgb <0.611765, 0.282353, 0.000000>]
[0.074510 rgb <0.611765, 0.282353, 0.031373>]
[0.078431 rgb <0.611765, 0.345098, 0.031373>]
[0.082353 rgb <0.643137, 0.188235, 0.000000>]
[0.086275 rgb <0.643137, 0.219608, 0.000000>]
[0.090196 rgb <0.643137, 0.250980, 0.000000>]
[0.094118 rgb <0.643137, 0.250980, 0.031373>]
[0.098039 rgb <0.643137, 0.282353, 0.000000>]
[0.101961 rgb <0.643137, 0.282353, 0.031373>]
[0.105882 rgb <0.643137, 0.313726, 0.000000>]
[0.109804 rgb <0.643137, 0.313726, 0.031373>]
[0.113725 rgb <0.643137, 0.313726, 0.062745>]
[0.117647 rgb <0.643137, 0.345098, 0.000000>]
[0.121569 rgb <0.643137, 0.345098, 0.031373>]
[0.125490 rgb <0.674510, 0.219608, 0.000000>]
[0.129412 rgb <0.674510, 0.250980, 0.000000>]
[0.133333 rgb <0.674510, 0.250980, 0.031373>]
[0.137255 rgb <0.674510, 0.282353, 0.000000>]
[0.141176 rgb <0.674510, 0.282353, 0.031373>]
[0.145098 rgb <0.674510, 0.313726, 0.000000>]
[0.149020 rgb <0.674510, 0.313726, 0.031373>]
[0.152941 rgb <0.674510, 0.313726, 0.062745>]
[0.156863 rgb <0.674510, 0.345098, 0.000000>]
[0.160784 rgb <0.674510, 0.345098, 0.031373>]
[0.164706 rgb <0.674510, 0.345098, 0.062745>]
[0.168627 rgb <0.674510, 0.376471, 0.031373>]
[0.172549 rgb <0.705882, 0.219608, 0.000000>]
[0.176471 rgb <0.705882, 0.282353, 0.000000>]
[0.180392 rgb <0.705882, 0.282353, 0.031373>]
[0.184314 rgb <0.705882, 0.313726, 0.000000>]
[0.188235 rgb <0.705882, 0.313726, 0.031373>]
[0.192157 rgb <0.705882, 0.313726, 0.062745>]
[0.196078 rgb <0.705882, 0.345098, 0.000000>]
[0.200000 rgb <0.705882, 0.345098, 0.031373>]
[0.203922 rgb <0.705882, 0.345098, 0.062745>]
[0.207843 rgb <0.705882, 0.376471, 0.000000>]
[0.211765 rgb <0.705882, 0.376471, 0.031373>]
[0.215686 rgb <0.705882, 0.376471, 0.062745>]
[0.219608 rgb <0.705882, 0.407843, 0.000000>]
[0.223529 rgb <0.705882, 0.407843, 0.031373>]
[0.227451 rgb <0.705882, 0.407843, 0.062745>]
[0.231373 rgb <0.737255, 0.282353, 0.000000>]
[0.235294 rgb <0.737255, 0.282353, 0.031373>]
[0.239216 rgb <0.737255, 0.313726, 0.000000>]
[0.243137 rgb <0.737255, 0.313726, 0.031373>]
[0.247059 rgb <0.737255, 0.313726, 0.062745>]
[0.250980 rgb <0.737255, 0.345098, 0.000000>]
[0.254902 rgb <0.737255, 0.345098, 0.031373>]
[0.258824 rgb <0.737255, 0.345098, 0.062745>]
[0.262745 rgb <0.737255, 0.376471, 0.000000>]
[0.266667 rgb <0.737255, 0.376471, 0.031373>]
[0.270588 rgb <0.737255, 0.376471, 0.062745>]
[0.274510 rgb <0.737255, 0.376471, 0.094118>]
[0.278431 rgb <0.737255, 0.407843, 0.000000>]
[0.282353 rgb <0.737255, 0.407843, 0.031373>]
[0.286275 rgb <0.737255, 0.439216, 0.031373>]
[0.290196 rgb <0.768627, 0.282353, 0.000000>]
[0.294118 rgb <0.768627, 0.313726, 0.000000>]
[0.298039 rgb <0.768627, 0.313726, 0.031373>]
[0.301961 rgb <0.768627, 0.345098, 0.000000>]
[0.305882 rgb <0.768627, 0.345098, 0.031373>]
[0.309804 rgb <0.768627, 0.345098, 0.062745>]
[0.313726 rgb <0.768627, 0.376471, 0.000000>]
[0.317647 rgb <0.768627, 0.376471, 0.031373>]
[0.321569 rgb <0.768627, 0.376471, 0.062745>]
[0.325490 rgb <0.768627, 0.376471, 0.094118>]
[0.329412 rgb <0.768627, 0.407843, 0.000000>]
[0.333333 rgb <0.768627, 0.407843, 0.031373>]
[0.337255 rgb <0.768627, 0.407843, 0.062745>]
[0.341176 rgb <0.768627, 0.407843, 0.094118>]
[0.345098 rgb <0.768627, 0.439216, 0.000000>]
[0.349020 rgb <0.768627, 0.439216, 0.031373>]
[0.352941 rgb <0.768627, 0.439216, 0.062745>]
[0.356863 rgb <0.768627, 0.439216, 0.094118>]
[0.360784 rgb <0.768627, 0.470588, 0.000000>]
[0.364706 rgb <0.768627, 0.470588, 0.062745>]
[0.368627 rgb <0.800000, 0.313726, 0.000000>]
[0.372549 rgb <0.800000, 0.345098, 0.000000>]
[0.376471 rgb <0.800000, 0.345098, 0.031373>]
[0.380392 rgb <0.800000, 0.345098, 0.062745>]
[0.384314 rgb <0.800000, 0.376471, 0.000000>]
[0.388235 rgb <0.800000, 0.376471, 0.031373>]
[0.392157 rgb <0.800000, 0.376471, 0.062745>]
[0.396078 rgb <0.800000, 0.376471, 0.094118>]
[0.400000 rgb <0.800000, 0.407843, 0.000000>]
[0.403922 rgb <0.800000, 0.407843, 0.031373>]
[0.407843 rgb <0.800000, 0.407843, 0.062745>]
[0.411765 rgb <0.800000, 0.407843, 0.094118>]
[0.415686 rgb <0.800000, 0.439216, 0.000000>]
[0.419608 rgb <0.800000, 0.439216, 0.031373>]
[0.423529 rgb <0.800000, 0.439216, 0.062745>]
[0.427451 rgb <0.800000, 0.439216, 0.094118>]
[0.431373 rgb <0.800000, 0.439216, 0.125490>]
[0.435294 rgb <0.800000, 0.470588, 0.000000>]
[0.439216 rgb <0.800000, 0.470588, 0.062745>]
[0.443137 rgb <0.800000, 0.470588, 0.094118>]
[0.447059 rgb <0.800000, 0.501961, 0.000000>]
[0.450980 rgb <0.800000, 0.501961, 0.062745>]
[0.454902 rgb <0.831373, 0.345098, 0.031373>]
[0.458824 rgb <0.831373, 0.376471, 0.000000>]
[0.462745 rgb <0.831373, 0.376471, 0.031373>]
[0.466667 rgb <0.831373, 0.376471, 0.062745>]
[0.470588 rgb <0.831373, 0.376471, 0.094118>]
[0.474510 rgb <0.831373, 0.407843, 0.000000>]
[0.478431 rgb <0.831373, 0.407843, 0.031373>]
[0.482353 rgb <0.831373, 0.407843, 0.062745>]
[0.486275 rgb <0.831373, 0.407843, 0.094118>]
[0.490196 rgb <0.831373, 0.439216, 0.000000>]
[0.494118 rgb <0.831373, 0.439216, 0.031373>]
[0.498039 rgb <0.831373, 0.439216, 0.062745>]
[0.501961 rgb <0.831373, 0.439216, 0.094118>]
[0.505882 rgb <0.831373, 0.439216, 0.125490>]
[0.509804 rgb <0.831373, 0.470588, 0.000000>]
[0.513726 rgb <0.831373, 0.470588, 0.031373>]
[0.517647 rgb <0.831373, 0.470588, 0.062745>]
[0.521569 rgb <0.831373, 0.470588, 0.094118>]
[0.525490 rgb <0.831373, 0.470588, 0.125490>]
[0.529412 rgb <0.831373, 0.501961, 0.062745>]
[0.533333 rgb <0.862745, 0.345098, 0.031373>]
[0.537255 rgb <0.862745, 0.376471, 0.000000>]
[0.541176 rgb <0.862745, 0.376471, 0.031373>]
[0.545098 rgb <0.862745, 0.376471, 0.062745>]
[0.549020 rgb <0.862745, 0.407843, 0.000000>]
[0.552941 rgb <0.862745, 0.407843, 0.031373>]
[0.556863 rgb <0.862745, 0.407843, 0.062745>]
[0.560784 rgb <0.862745, 0.407843, 0.094118>]
[0.564706 rgb <0.862745, 0.439216, 0.000000>]
[0.568627 rgb <0.862745, 0.439216, 0.031373>]
[0.572549 rgb <0.862745, 0.439216, 0.062745>]
[0.576471 rgb <0.862745, 0.439216, 0.094118>]
[0.580392 rgb <0.862745, 0.439216, 0.125490>]
[0.584314 rgb <0.862745, 0.470588, 0.000000>]
[0.588235 rgb <0.862745, 0.470588, 0.031373>]
[0.592157 rgb <0.862745, 0.470588, 0.062745>]
[0.596078 rgb <0.862745, 0.470588, 0.094118>]
[0.600000 rgb <0.862745, 0.470588, 0.125490>]
[0.603922 rgb <0.862745, 0.501961, 0.000000>]
[0.607843 rgb <0.862745, 0.501961, 0.031373>]
[0.611765 rgb <0.862745, 0.501961, 0.062745>]
[0.615686 rgb <0.862745, 0.501961, 0.094118>]
[0.619608 rgb <0.862745, 0.501961, 0.125490>]
[0.623529 rgb <0.862745, 0.501961, 0.156863>]
[0.627451 rgb <0.862745, 0.533333, 0.031373>]
[0.631373 rgb <0.862745, 0.533333, 0.094118>]
[0.635294 rgb <0.862745, 0.533333, 0.125490>]
[0.639216 rgb <0.894118, 0.407843, 0.000000>]
[0.643137 rgb <0.894118, 0.407843, 0.031373>]
[0.647059 rgb <0.894118, 0.407843, 0.062745>]
[0.650980 rgb <0.894118, 0.439216, 0.000000>]
[0.654902 rgb <0.894118, 0.439216, 0.031373>]
[0.658824 rgb <0.894118, 0.439216, 0.062745>]
[0.662745 rgb <0.894118, 0.439216, 0.094118>]
[0.666667 rgb <0.894118, 0.439216, 0.125490>]
[0.670588 rgb <0.894118, 0.470588, 0.000000>]
[0.674510 rgb <0.894118, 0.470588, 0.031373>]
[0.678431 rgb <0.894118, 0.470588, 0.062745>]
[0.682353 rgb <0.894118, 0.470588, 0.094118>]
[0.686275 rgb <0.894118, 0.470588, 0.125490>]
[0.690196 rgb <0.894118, 0.470588, 0.156863>]
[0.694118 rgb <0.894118, 0.501961, 0.000000>]
[0.698039 rgb <0.894118, 0.501961, 0.031373>]
[0.701961 rgb <0.894118, 0.501961, 0.062745>]
[0.705882 rgb <0.894118, 0.501961, 0.094118>]
[0.709804 rgb <0.894118, 0.501961, 0.125490>]
[0.713726 rgb <0.894118, 0.501961, 0.156863>]
[0.717647 rgb <0.894118, 0.533333, 0.094118>]
[0.721569 rgb <0.894118, 0.533333, 0.125490>]
[0.725490 rgb <0.894118, 0.533333, 0.156863>]
[0.729412 rgb <0.894118, 0.580392, 0.094118>]
[0.733333 rgb <0.894118, 0.580392, 0.125490>]
[0.737255 rgb <0.925490, 0.407843, 0.062745>]
[0.741176 rgb <0.925490, 0.439216, 0.000000>]
[0.745098 rgb <0.925490, 0.439216, 0.031373>]
[0.749020 rgb <0.925490, 0.439216, 0.062745>]
[0.752941 rgb <0.925490, 0.439216, 0.094118>]
[0.756863 rgb <0.925490, 0.470588, 0.000000>]
[0.760784 rgb <0.925490, 0.470588, 0.031373>]
[0.764706 rgb <0.925490, 0.470588, 0.062745>]
[0.768627 rgb <0.925490, 0.470588, 0.094118>]
[0.772549 rgb <0.925490, 0.470588, 0.125490>]
[0.776471 rgb <0.925490, 0.470588, 0.156863>]
[0.780392 rgb <0.925490, 0.501961, 0.000000>]
[0.784314 rgb <0.925490, 0.501961, 0.031373>]
[0.788235 rgb <0.925490, 0.501961, 0.062745>]
[0.792157 rgb <0.925490, 0.501961, 0.094118>]
[0.796078 rgb <0.925490, 0.501961, 0.125490>]
[0.800000 rgb <0.925490, 0.501961, 0.156863>]
[0.803922 rgb <0.925490, 0.533333, 0.000000>]
[0.807843 rgb <0.925490, 0.533333, 0.062745>]
[0.811765 rgb <0.925490, 0.533333, 0.094118>]
[0.815686 rgb <0.925490, 0.533333, 0.125490>]
[0.819608 rgb <0.925490, 0.533333, 0.156863>]
[0.823529 rgb <0.925490, 0.580392, 0.031373>]
[0.827451 rgb <0.925490, 0.611765, 0.094118>]
[0.831373 rgb <0.956863, 0.407843, 0.062745>]
[0.835294 rgb <0.956863, 0.470588, 0.000000>]
[0.839216 rgb <0.956863, 0.470588, 0.031373>]
[0.843137 rgb <0.956863, 0.470588, 0.062745>]
[0.847059 rgb <0.956863, 0.470588, 0.094118>]
[0.850980 rgb <0.956863, 0.470588, 0.125490>]
[0.854902 rgb <0.956863, 0.501961, 0.000000>]
[0.858824 rgb <0.956863, 0.501961, 0.031373>]
[0.862745 rgb <0.956863, 0.501961, 0.062745>]
[0.866667 rgb <0.956863, 0.501961, 0.094118>]
[0.870588 rgb <0.956863, 0.501961, 0.125490>]
[0.874510 rgb <0.956863, 0.501961, 0.156863>]
[0.878431 rgb <0.956863, 0.533333, 0.000000>]
[0.882353 rgb <0.956863, 0.533333, 0.062745>]
[0.886275 rgb <0.956863, 0.533333, 0.094118>]
[0.890196 rgb <0.956863, 0.533333, 0.125490>]
[0.894118 rgb <0.956863, 0.533333, 0.156863>]
[0.898039 rgb <0.956863, 0.533333, 0.188235>]
[0.901961 rgb <0.956863, 0.580392, 0.000000>]
[0.905882 rgb <0.956863, 0.580392, 0.062745>]
[0.909804 rgb <0.956863, 0.580392, 0.094118>]
[0.913725 rgb <0.956863, 0.580392, 0.125490>]
[0.917647 rgb <0.956863, 0.580392, 0.156863>]
[0.921569 rgb <0.956863, 0.580392, 0.188235>]
[0.925490 rgb <0.988235, 0.470588, 0.031373>]
[0.929412 rgb <0.988235, 0.470588, 0.094118>]
[0.933333 rgb <0.988235, 0.501961, 0.031373>]
[0.937255 rgb <0.988235, 0.501961, 0.094118>]
[0.941176 rgb <0.988235, 0.501961, 0.125490>]
[0.945098 rgb <0.988235, 0.533333, 0.000000>]
[0.949020 rgb <0.988235, 0.533333, 0.062745>]
[0.952941 rgb <0.988235, 0.533333, 0.094118>]
[0.956863 rgb <0.988235, 0.533333, 0.125490>]
[0.960784 rgb <0.988235, 0.533333, 0.156863>]
[0.964706 rgb <0.988235, 0.580392, 0.031373>]
[0.968627 rgb <0.988235, 0.580392, 0.094118>]
[0.972549 rgb <0.988235, 0.580392, 0.125490>]
[0.976471 rgb <0.988235, 0.580392, 0.156863>]
[0.980392 rgb <0.988235, 0.580392, 0.188235>]
[0.984314 rgb <0.988235, 0.611765, 0.062745>]
[0.988235 rgb <0.988235, 0.611765, 0.125490>]
[0.992157 rgb <0.988235, 0.611765, 0.156863>]
[0.996078 rgb <0.988235, 0.611765, 0.188235>]
}
#version Orngwood_Inc_Temp;

View file

@ -0,0 +1,266 @@
#declare PinkMarb_Inc_Temp=version;
/*
Persistence of Vision Raytracer Version 3.1
Pink Marble color_map
*/
#declare M_PinkMarb =
color_map {
[0.000000 rgb <0.345098, 0.250980, 0.219608>]
[0.003922 rgb <0.345098, 0.313726, 0.250980>]
[0.007843 rgb <0.345098, 0.345098, 0.282353>]
[0.011765 rgb <0.376471, 0.376471, 0.313726>]
[0.015686 rgb <0.407843, 0.313726, 0.250980>]
[0.019608 rgb <0.407843, 0.345098, 0.250980>]
[0.023529 rgb <0.407843, 0.345098, 0.313726>]
[0.027451 rgb <0.407843, 0.345098, 0.345098>]
[0.031373 rgb <0.407843, 0.407843, 0.313726>]
[0.035294 rgb <0.407843, 0.407843, 0.376471>]
[0.039216 rgb <0.439216, 0.345098, 0.282353>]
[0.043137 rgb <0.439216, 0.345098, 0.313726>]
[0.047059 rgb <0.439216, 0.345098, 0.345098>]
[0.050980 rgb <0.439216, 0.376471, 0.313726>]
[0.054902 rgb <0.439216, 0.376471, 0.345098>]
[0.058824 rgb <0.439216, 0.376471, 0.376471>]
[0.062745 rgb <0.439216, 0.407843, 0.376471>]
[0.066667 rgb <0.439216, 0.407843, 0.407843>]
[0.070588 rgb <0.439216, 0.439216, 0.376471>]
[0.074510 rgb <0.439216, 0.439216, 0.407843>]
[0.078431 rgb <0.470588, 0.345098, 0.282353>]
[0.082353 rgb <0.470588, 0.376471, 0.282353>]
[0.086275 rgb <0.470588, 0.376471, 0.313726>]
[0.090196 rgb <0.470588, 0.376471, 0.345098>]
[0.094118 rgb <0.470588, 0.376471, 0.376471>]
[0.098039 rgb <0.470588, 0.407843, 0.313726>]
[0.101961 rgb <0.470588, 0.407843, 0.345098>]
[0.105882 rgb <0.470588, 0.407843, 0.376471>]
[0.109804 rgb <0.470588, 0.407843, 0.407843>]
[0.113725 rgb <0.470588, 0.439216, 0.345098>]
[0.117647 rgb <0.470588, 0.439216, 0.376471>]
[0.121569 rgb <0.470588, 0.439216, 0.407843>]
[0.125490 rgb <0.470588, 0.439216, 0.439216>]
[0.129412 rgb <0.470588, 0.470588, 0.376471>]
[0.133333 rgb <0.470588, 0.470588, 0.439216>]
[0.137255 rgb <0.501961, 0.376471, 0.282353>]
[0.141176 rgb <0.501961, 0.376471, 0.345098>]
[0.145098 rgb <0.501961, 0.407843, 0.313726>]
[0.149020 rgb <0.501961, 0.407843, 0.345098>]
[0.152941 rgb <0.501961, 0.407843, 0.376471>]
[0.156863 rgb <0.501961, 0.407843, 0.407843>]
[0.160784 rgb <0.501961, 0.439216, 0.345098>]
[0.164706 rgb <0.501961, 0.439216, 0.376471>]
[0.168627 rgb <0.501961, 0.439216, 0.407843>]
[0.172549 rgb <0.501961, 0.439216, 0.439216>]
[0.176471 rgb <0.501961, 0.470588, 0.376471>]
[0.180392 rgb <0.501961, 0.470588, 0.407843>]
[0.184314 rgb <0.501961, 0.470588, 0.439216>]
[0.188235 rgb <0.501961, 0.470588, 0.470588>]
[0.192157 rgb <0.501961, 0.501961, 0.439216>]
[0.196078 rgb <0.533333, 0.376471, 0.313726>]
[0.200000 rgb <0.533333, 0.407843, 0.345098>]
[0.203922 rgb <0.533333, 0.407843, 0.376471>]
[0.207843 rgb <0.533333, 0.407843, 0.407843>]
[0.211765 rgb <0.533333, 0.439216, 0.345098>]
[0.215686 rgb <0.533333, 0.439216, 0.376471>]
[0.219608 rgb <0.533333, 0.439216, 0.407843>]
[0.223529 rgb <0.533333, 0.439216, 0.439216>]
[0.227451 rgb <0.533333, 0.470588, 0.376471>]
[0.231373 rgb <0.533333, 0.470588, 0.407843>]
[0.235294 rgb <0.533333, 0.470588, 0.439216>]
[0.239216 rgb <0.533333, 0.470588, 0.470588>]
[0.243137 rgb <0.533333, 0.501961, 0.407843>]
[0.247059 rgb <0.533333, 0.501961, 0.439216>]
[0.250980 rgb <0.533333, 0.501961, 0.470588>]
[0.254902 rgb <0.533333, 0.501961, 0.501961>]
[0.258824 rgb <0.533333, 0.533333, 0.439216>]
[0.262745 rgb <0.533333, 0.533333, 0.501961>]
[0.266667 rgb <0.580392, 0.407843, 0.345098>]
[0.270588 rgb <0.580392, 0.439216, 0.345098>]
[0.274510 rgb <0.580392, 0.439216, 0.376471>]
[0.278431 rgb <0.580392, 0.439216, 0.407843>]
[0.282353 rgb <0.580392, 0.439216, 0.439216>]
[0.286275 rgb <0.580392, 0.470588, 0.376471>]
[0.290196 rgb <0.580392, 0.470588, 0.407843>]
[0.294118 rgb <0.580392, 0.470588, 0.439216>]
[0.298039 rgb <0.580392, 0.470588, 0.470588>]
[0.301961 rgb <0.580392, 0.501961, 0.407843>]
[0.305882 rgb <0.580392, 0.501961, 0.439216>]
[0.309804 rgb <0.580392, 0.501961, 0.470588>]
[0.313726 rgb <0.580392, 0.501961, 0.501961>]
[0.317647 rgb <0.580392, 0.533333, 0.439216>]
[0.321569 rgb <0.580392, 0.533333, 0.470588>]
[0.325490 rgb <0.580392, 0.533333, 0.501961>]
[0.329412 rgb <0.580392, 0.533333, 0.533333>]
[0.333333 rgb <0.580392, 0.580392, 0.501961>]
[0.337255 rgb <0.611765, 0.439216, 0.376471>]
[0.341176 rgb <0.611765, 0.470588, 0.376471>]
[0.345098 rgb <0.611765, 0.470588, 0.407843>]
[0.349020 rgb <0.611765, 0.470588, 0.439216>]
[0.352941 rgb <0.611765, 0.470588, 0.470588>]
[0.356863 rgb <0.611765, 0.501961, 0.407843>]
[0.360784 rgb <0.611765, 0.501961, 0.439216>]
[0.364706 rgb <0.611765, 0.501961, 0.470588>]
[0.368627 rgb <0.611765, 0.501961, 0.501961>]
[0.372549 rgb <0.611765, 0.533333, 0.439216>]
[0.376471 rgb <0.611765, 0.533333, 0.470588>]
[0.380392 rgb <0.611765, 0.533333, 0.501961>]
[0.384314 rgb <0.611765, 0.533333, 0.533333>]
[0.388235 rgb <0.611765, 0.580392, 0.470588>]
[0.392157 rgb <0.611765, 0.580392, 0.501961>]
[0.396078 rgb <0.611765, 0.580392, 0.533333>]
[0.400000 rgb <0.611765, 0.580392, 0.580392>]
[0.403922 rgb <0.611765, 0.611765, 0.533333>]
[0.407843 rgb <0.643137, 0.470588, 0.376471>]
[0.411765 rgb <0.643137, 0.470588, 0.439216>]
[0.415686 rgb <0.643137, 0.501961, 0.407843>]
[0.419608 rgb <0.643137, 0.501961, 0.439216>]
[0.423529 rgb <0.643137, 0.501961, 0.470588>]
[0.427451 rgb <0.643137, 0.501961, 0.501961>]
[0.431373 rgb <0.643137, 0.533333, 0.439216>]
[0.435294 rgb <0.643137, 0.533333, 0.470588>]
[0.439216 rgb <0.643137, 0.533333, 0.501961>]
[0.443137 rgb <0.643137, 0.533333, 0.533333>]
[0.447059 rgb <0.643137, 0.580392, 0.470588>]
[0.450980 rgb <0.643137, 0.580392, 0.501961>]
[0.454902 rgb <0.643137, 0.580392, 0.533333>]
[0.458824 rgb <0.643137, 0.580392, 0.580392>]
[0.462745 rgb <0.643137, 0.611765, 0.501961>]
[0.466667 rgb <0.643137, 0.611765, 0.533333>]
[0.470588 rgb <0.643137, 0.611765, 0.580392>]
[0.474510 rgb <0.643137, 0.611765, 0.611765>]
[0.478431 rgb <0.643137, 0.643137, 0.580392>]
[0.482353 rgb <0.674510, 0.470588, 0.407843>]
[0.486275 rgb <0.674510, 0.501961, 0.407843>]
[0.490196 rgb <0.674510, 0.501961, 0.470588>]
[0.494118 rgb <0.674510, 0.501961, 0.501961>]
[0.498039 rgb <0.674510, 0.533333, 0.439216>]
[0.501961 rgb <0.674510, 0.533333, 0.470588>]
[0.505882 rgb <0.674510, 0.533333, 0.501961>]
[0.509804 rgb <0.674510, 0.533333, 0.533333>]
[0.513726 rgb <0.674510, 0.580392, 0.470588>]
[0.517647 rgb <0.674510, 0.580392, 0.501961>]
[0.521569 rgb <0.674510, 0.580392, 0.533333>]
[0.525490 rgb <0.674510, 0.580392, 0.580392>]
[0.529412 rgb <0.674510, 0.611765, 0.501961>]
[0.533333 rgb <0.674510, 0.611765, 0.533333>]
[0.537255 rgb <0.674510, 0.611765, 0.580392>]
[0.541176 rgb <0.674510, 0.611765, 0.611765>]
[0.545098 rgb <0.674510, 0.643137, 0.533333>]
[0.549020 rgb <0.674510, 0.643137, 0.580392>]
[0.552941 rgb <0.674510, 0.643137, 0.611765>]
[0.556863 rgb <0.674510, 0.674510, 0.643137>]
[0.560784 rgb <0.705882, 0.501961, 0.439216>]
[0.564706 rgb <0.705882, 0.533333, 0.439216>]
[0.568627 rgb <0.705882, 0.533333, 0.470588>]
[0.572549 rgb <0.705882, 0.533333, 0.501961>]
[0.576471 rgb <0.705882, 0.533333, 0.533333>]
[0.580392 rgb <0.705882, 0.580392, 0.470588>]
[0.584314 rgb <0.705882, 0.580392, 0.501961>]
[0.588235 rgb <0.705882, 0.580392, 0.533333>]
[0.592157 rgb <0.705882, 0.580392, 0.580392>]
[0.596078 rgb <0.705882, 0.611765, 0.501961>]
[0.600000 rgb <0.705882, 0.611765, 0.533333>]
[0.603922 rgb <0.705882, 0.611765, 0.580392>]
[0.607843 rgb <0.705882, 0.611765, 0.611765>]
[0.611765 rgb <0.705882, 0.643137, 0.533333>]
[0.615686 rgb <0.705882, 0.643137, 0.580392>]
[0.619608 rgb <0.705882, 0.643137, 0.611765>]
[0.623529 rgb <0.705882, 0.643137, 0.643137>]
[0.627451 rgb <0.705882, 0.674510, 0.580392>]
[0.631373 rgb <0.705882, 0.674510, 0.611765>]
[0.635294 rgb <0.705882, 0.674510, 0.643137>]
[0.639216 rgb <0.705882, 0.705882, 0.643137>]
[0.643137 rgb <0.737255, 0.533333, 0.470588>]
[0.647059 rgb <0.737255, 0.580392, 0.470588>]
[0.650980 rgb <0.737255, 0.580392, 0.501961>]
[0.654902 rgb <0.737255, 0.580392, 0.533333>]
[0.658824 rgb <0.737255, 0.580392, 0.580392>]
[0.662745 rgb <0.737255, 0.611765, 0.501961>]
[0.666667 rgb <0.737255, 0.611765, 0.533333>]
[0.670588 rgb <0.737255, 0.611765, 0.580392>]
[0.674510 rgb <0.737255, 0.611765, 0.611765>]
[0.678431 rgb <0.737255, 0.643137, 0.533333>]
[0.682353 rgb <0.737255, 0.643137, 0.580392>]
[0.686275 rgb <0.737255, 0.643137, 0.611765>]
[0.690196 rgb <0.737255, 0.643137, 0.643137>]
[0.694118 rgb <0.737255, 0.674510, 0.580392>]
[0.698039 rgb <0.737255, 0.674510, 0.611765>]
[0.701961 rgb <0.737255, 0.674510, 0.643137>]
[0.705882 rgb <0.737255, 0.674510, 0.674510>]
[0.709804 rgb <0.737255, 0.737255, 0.674510>]
[0.713726 rgb <0.768627, 0.580392, 0.501961>]
[0.717647 rgb <0.768627, 0.611765, 0.501961>]
[0.721569 rgb <0.768627, 0.611765, 0.533333>]
[0.725490 rgb <0.768627, 0.611765, 0.580392>]
[0.729412 rgb <0.768627, 0.611765, 0.611765>]
[0.733333 rgb <0.768627, 0.643137, 0.533333>]
[0.737255 rgb <0.768627, 0.643137, 0.580392>]
[0.741176 rgb <0.768627, 0.643137, 0.611765>]
[0.745098 rgb <0.768627, 0.643137, 0.643137>]
[0.749020 rgb <0.768627, 0.674510, 0.580392>]
[0.752941 rgb <0.768627, 0.674510, 0.611765>]
[0.756863 rgb <0.768627, 0.674510, 0.643137>]
[0.760784 rgb <0.768627, 0.674510, 0.674510>]
[0.764706 rgb <0.768627, 0.705882, 0.611765>]
[0.768627 rgb <0.768627, 0.705882, 0.643137>]
[0.772549 rgb <0.768627, 0.705882, 0.674510>]
[0.776471 rgb <0.768627, 0.705882, 0.705882>]
[0.780392 rgb <0.768627, 0.768627, 0.705882>]
[0.784314 rgb <0.800000, 0.611765, 0.533333>]
[0.788235 rgb <0.800000, 0.643137, 0.533333>]
[0.792157 rgb <0.800000, 0.643137, 0.580392>]
[0.796078 rgb <0.800000, 0.643137, 0.611765>]
[0.800000 rgb <0.800000, 0.643137, 0.643137>]
[0.803922 rgb <0.800000, 0.674510, 0.580392>]
[0.807843 rgb <0.800000, 0.674510, 0.611765>]
[0.811765 rgb <0.800000, 0.674510, 0.643137>]
[0.815686 rgb <0.800000, 0.674510, 0.674510>]
[0.819608 rgb <0.800000, 0.705882, 0.611765>]
[0.823529 rgb <0.800000, 0.705882, 0.643137>]
[0.827451 rgb <0.800000, 0.705882, 0.674510>]
[0.831373 rgb <0.800000, 0.705882, 0.705882>]
[0.835294 rgb <0.800000, 0.737255, 0.643137>]
[0.839216 rgb <0.800000, 0.737255, 0.674510>]
[0.843137 rgb <0.800000, 0.737255, 0.705882>]
[0.847059 rgb <0.800000, 0.737255, 0.737255>]
[0.850980 rgb <0.831373, 0.643137, 0.580392>]
[0.854902 rgb <0.831373, 0.674510, 0.580392>]
[0.858824 rgb <0.831373, 0.674510, 0.611765>]
[0.862745 rgb <0.831373, 0.674510, 0.643137>]
[0.866667 rgb <0.831373, 0.705882, 0.611765>]
[0.870588 rgb <0.831373, 0.705882, 0.643137>]
[0.874510 rgb <0.831373, 0.705882, 0.674510>]
[0.878431 rgb <0.831373, 0.705882, 0.705882>]
[0.882353 rgb <0.831373, 0.737255, 0.611765>]
[0.886275 rgb <0.831373, 0.737255, 0.674510>]
[0.890196 rgb <0.831373, 0.737255, 0.705882>]
[0.894118 rgb <0.831373, 0.737255, 0.737255>]
[0.898039 rgb <0.831373, 0.768627, 0.674510>]
[0.901961 rgb <0.831373, 0.768627, 0.705882>]
[0.905882 rgb <0.831373, 0.768627, 0.737255>]
[0.909804 rgb <0.831373, 0.800000, 0.737255>]
[0.913725 rgb <0.862745, 0.674510, 0.611765>]
[0.917647 rgb <0.862745, 0.705882, 0.611765>]
[0.921569 rgb <0.862745, 0.705882, 0.643137>]
[0.925490 rgb <0.862745, 0.737255, 0.643137>]
[0.929412 rgb <0.862745, 0.737255, 0.674510>]
[0.933333 rgb <0.862745, 0.737255, 0.705882>]
[0.937255 rgb <0.862745, 0.768627, 0.674510>]
[0.941176 rgb <0.862745, 0.768627, 0.705882>]
[0.945098 rgb <0.862745, 0.768627, 0.737255>]
[0.949020 rgb <0.862745, 0.800000, 0.737255>]
[0.952941 rgb <0.862745, 0.831373, 0.768627>]
[0.956863 rgb <0.894118, 0.705882, 0.643137>]
[0.960784 rgb <0.894118, 0.737255, 0.674510>]
[0.964706 rgb <0.894118, 0.768627, 0.674510>]
[0.968627 rgb <0.894118, 0.768627, 0.705882>]
[0.972549 rgb <0.894118, 0.768627, 0.737255>]
[0.976471 rgb <0.894118, 0.800000, 0.705882>]
[0.980392 rgb <0.894118, 0.800000, 0.737255>]
[0.984314 rgb <0.894118, 0.800000, 0.768627>]
[0.988235 rgb <0.925490, 0.768627, 0.705882>]
[0.992157 rgb <0.925490, 0.800000, 0.737255>]
[0.996078 rgb <0.925490, 0.831373, 0.768627>]
}
#version PinkMarb_Inc_Temp;

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,241 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: rad_def.inc
// Last updated: 2010.5.24
// Description: Set some common radiosity settings.
// These settings are extremely general and are intended for
// ease of use, and don't necessarily give the best results.
// Modified 2001.7.26: Made Normal and Media parameters work
// no matter what setting is used. (Chris Huff)
#ifndef(Rad_Def2_Inc_Temp)
#declare Rad_Def2_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including rad_def.inc\n"
#end
#declare Radiosity_Default = 0;
#declare Radiosity_Debug = 1;
#declare Radiosity_Fast = 2;
#declare Radiosity_Normal = 3;
#declare Radiosity_2Bounce = 4;
#declare Radiosity_Final = 5;
#declare Radiosity_OutdoorLQ = 6;
#declare Radiosity_OutdoorHQ = 7;
#declare Radiosity_OutdoorLight = 8;
#declare Radiosity_IndoorLQ = 9;
#declare Radiosity_IndoorHQ = 10;
// The correct format for using this file is:
//
// #include "rad_def.inc"
// global_settings {
// radiosity {
// Rad_Settings(Radiosity_Default, off, off)
// }
// }
//
//
// for first parameter use one of the above constants
//
// second parameter for radiosity normal switch
// (turn 'on' if normal should be taken into account when calculating radiosity)
//
// third parameter for radiosity media switch
// (turn 'on' if media should be taken into account when calculating radiosity)
//
#macro Rad_Settings(Nbr, Normal, Media)
#switch(Nbr)
// An empty radiosity block using default settings
#case (Radiosity_Default)
#debug "\nRadiosity_Default in use\n"
#break
// Run it fast, don't try to make it look good, make sure that
// you can actually see where the radiosity boundaries are.
#case (Radiosity_Debug)
pretrace_start 0.08
pretrace_end 0.02
count 10
nearest_count 1
error_bound 0.3
recursion_limit 1
low_error_factor 0.8
gray_threshold 0
minimum_reuse 0.015
brightness 1.0
adc_bailout 0.01/2
#debug "\nRadiosity_Debug in use\n"
#break
// Make it look as good as you can, but I'm in a hurry
#case (Radiosity_Fast)
pretrace_start 0.08
pretrace_end 0.02
count 80
nearest_count 5
error_bound 0.4
recursion_limit 1
low_error_factor 0.9
gray_threshold 0
minimum_reuse 0.025
brightness 1.0
adc_bailout 0.01/2
#debug "\nRadiosity_Fast in use\n"
#break
// Typical values
#case (Radiosity_Normal)
pretrace_start 0.08
pretrace_end 0.01
count 200
nearest_count 7
error_bound 0.3
recursion_limit 1
low_error_factor 0.75
gray_threshold 0
minimum_reuse 0.017
brightness 1.0
adc_bailout 0.01/2
#debug "\nRadiosity_Normal in use\n"
#break
// Typical values, but with 2 bounces. Starts slow, but picks up steam!
#case (Radiosity_2Bounce)
pretrace_start 0.08
pretrace_end 0.01
count 200
nearest_count 7
error_bound 0.3
recursion_limit 2
low_error_factor 0.75
gray_threshold 0
minimum_reuse 0.017
brightness 1.0
adc_bailout 0.01/2
#debug "\nRadiosity_2Bounce in use\n"
#break
// For patient quality freaks with fast computers about to leave on vacation
#case (Radiosity_Final)
pretrace_start 0.08
pretrace_end 0.004
count 800
nearest_count 9
error_bound 0.2
recursion_limit 1
low_error_factor 0.7
gray_threshold 0
minimum_reuse 0.01
brightness 1.0
adc_bailout 0.01/2
#debug "\nRadiosity_Final in use\n"
#break
// For outdoor scenes without light sources
// Low quality being reasonably fast in most scenes
#case (Radiosity_OutdoorLQ)
pretrace_start 0.08
pretrace_end 0.01
count 80
nearest_count 4
error_bound 0.6
recursion_limit 1 // increase this in scenes with complicated geometries when necessary
low_error_factor 0.8
gray_threshold 0
minimum_reuse 0.015
brightness 1.0
adc_bailout 0.01/2
#debug "\nRadiosity_OutdoorLQ in use\n"
#break
// For outdoor scenes without light sources
// High quality - can be very slow
#case (Radiosity_OutdoorHQ)
pretrace_start 0.08
pretrace_end 0.004
count 500
nearest_count 7
error_bound 0.1
recursion_limit 1 // increase this in scenes with complicated geometries when necessary
low_error_factor 0.5
gray_threshold 0
minimum_reuse 0.015
brightness 1.0
adc_bailout 0.01/2
#debug "\nRadiosity_OutdoorHQ in use\n"
#break
// Settings for outdoor scenes with (Sun)light
// for getting a general skylight effect
#case (Radiosity_OutdoorLight)
pretrace_start 0.08
pretrace_end 0.01
count 50
nearest_count 4
error_bound 0.8
recursion_limit 1
low_error_factor 0.9
gray_threshold 0
minimum_reuse 0.015
brightness 1.0
adc_bailout 0.01/2
#debug "\nRadiosity_OutdoorLight in use\n"
#break
// quite fast settings for indoor radiosity
// good values much depend on actual situation
// these settings can be taken as a basis
#case (Radiosity_IndoorLQ)
pretrace_start 0.08
pretrace_end 0.01
count 80
nearest_count 5
error_bound 0.7
recursion_limit 2
low_error_factor 0.8
gray_threshold 0
minimum_reuse 0.015
brightness 1.0
adc_bailout 0.01/2
#debug "\nRadiosity_IndoorLQ in use\n"
#break
// slower settings for indoor radiosity
// good values much depend on actual situation
// these settings can be taken as a basis
#case (Radiosity_IndoorHQ)
pretrace_start 0.08
pretrace_end 0.004
count 400
nearest_count 8
error_bound 0.15
recursion_limit 3
low_error_factor 0.5
gray_threshold 0
minimum_reuse 0.015
brightness 1.0
adc_bailout 0.01/2
#debug "\nRadiosity_IndoorHQ in use\n"
#break
#end
normal Normal
media Media
#end
#version Rad_Def2_Inc_Temp;
#end

View file

@ -0,0 +1,346 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: rand.inc
// Last updated: 2001.8.9
// Description: some predefined random number generators, and
// macros for working with random numbers.
// Random number distribution macros contributed by Ingo Janssen.
#ifndef(RAND_INC_TEMP)
#declare RAND_INC_TEMP = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including rand.inc\n"
#end
#include "consts.inc"
//--------------------
//Random number generators:
//--------------------
#declare RdmA = seed(574647);// Random stream A
#declare RdmB = seed(324879);// Random stream B
#declare RdmC = seed(296735);// Random stream C
#declare RdmD = seed(978452);// Random stream D
//--------------------
//Random number macros:
//--------------------
//Probability, returns true or false.
//P is probability of returning true, RS is a random number stream.
#macro Prob(P, RS) (rand(RS) < P) #end
/////////////////////////////////////////
// Continuous Symmetric Distributions //
////////////////////////////////////////
#declare Gauss_Next = false;
// Cauchy distribution
// Input: Mu=mean, Sigma= standard deviation and a random stream
#macro Rand_Cauchy(Mu, Sigma, Stream)
(Sigma*tan(pi*(rand(Stream)-0.5))+Mu)
#end
// Student's-t distribution
// Input: N= degrees of freedom and a random stream.
#macro Rand_Student(N, Stream)
(Rand_Gauss(0,1,Stream)/sqrt(Rand_Chi_Square(N,Stream)/N))
#end
// Normal distribution
// Input: Mu=mean, Sigma= standard deviation and a random stream
// Output: a random value in the range of the normal distribution
// defined by the standard deviation, around the mean.
#macro Rand_Normal(Mu, Sigma, Stream)
#local Cn=4*exp(-0.5)/sqrt(2);
#local Loop=true;
#while (Loop)
#local R=rand(Stream);
#local V=Cn*(rand(Stream)-0.5)/R;
#local VV=V*V/4;
#if (VV<=-ln(R))
#local Loop=false;
#end
#end
(Mu+(V*Sigma))
#end
// Gaussian distribution
// like Rand_Normal, but a bit faster
#macro Rand_Gauss(Mu, Sigma, Stream)
#local Zgauss=Gauss_Next;
#declare Gauss_Next=false;
#if (!Zgauss)
#local R1=rand(Stream)*2*pi;
#local R2=sqrt(-2*ln(1-rand(Stream)));
#local Zgauss=cos(R1)*R2;
#declare Gauss_Next=sin(R1)*R2;
#end
(Mu+(Zgauss*Sigma))
#end
/////////////////////////////////////
// Continuous Skewed Distributions //
/////////////////////////////////////
// Input: spline and a random stream.
// Output: a random value in the range 0 - 1.
// The probability of the value is controled
// by the spline. The splines clock_value is
// the output value and the .y value its chanche.
#macro Rand_Spline(Spl, Stream)
#local I=1;
#while (I)
#declare cVal=rand(Stream);
#if (Spl(cVal).y>=rand(Stream))
#local I=0;
(cVal)
#end
#end
#end
// Gamma distribution
// Input: Alpha= shape parameter >0, Beta= scale parameter >0 and a random stream.
#macro Rand_Gamma(Alpha, Beta, Stream)
#if(Alpha<=0 | Beta<=0)
#error "Alpha and Beta should be bigger than 0"
#end
#local Ainv=sqrt(2*Alpha-1);
#local BBB=Alpha-ln(4);
#local CCC=Alpha+Ainv;
#if (Alpha>1)
#local Loop = true;
#while (Loop)
#local R1=rand(Stream);
#local R2=rand(Stream);
#local V=ln(R1/(1-R1))/Ainv;
#local X=Alpha*exp(V);
#local Z=R1*R1*R2;
#local R=BBB+CCC*V-X;
#local RZ=R+(1+ln(4.5))-4.5*Z;
#if (RZ>=0 | R>=ln(Z))
#local Loop=false;
#local RETURN=X;
#end
#end
#end
#if (Alpha=1)
#local R=rand(Stream);
#while (R<=1e-7)
#local R=rand(Stream);
#end
#local RETURN=-ln(R);
#end
#if (Alpha>0 & Alpha<1)
#local Loop=true;
#while (Loop)
#local R=rand(Stream);
#local B=(e+Alpha)/e;
#local P=B*R;
#if (P<=1)
#local X=pow(P, (1/Alpha));
#else
#local X=-ln((B-P)/Alpha);
#end
#local R1=rand(Stream);
#if(!( ((P<=1) & (R1>exp(-X))) | ((P>1) & (R1>pow(X,Alpha-1))) ))
#local RETURN=X;
#local Loop=false;
#end
#end
#end
#local Return=Beta*RETURN;
Return
#end
// Beta variate
// Input: Alpha= shape Gamma1, Beta= shape Gamma2 and a random stream.
#macro Rand_Beta(Alpha, Beta, Stream)
#if(Alpha<=0 | Beta<=0)
#error "Alpha and Beta should be bigger than 0"
#end
#local Gamma1=Rand_Gamma(Alpha,1,Stream);
#if (Gamma1=0)
#local Return=0;
#else
#local Return=(Gamma1/(Gamma1+Rand_Gamma(Beta,1,Stream)));
#end
(Return)
#end
// Chi Square random variate
// Input: N= degrees of freedom int() and a random stream
#macro Rand_Chi_Square(N, Stream)
(Rand_Gamma(2,0.5*int(N),Stream))
#end
// F-Distribution
// Input: N, M degrees of freedom and a random stream.
#macro Rand_F_Dist(N, M, Stream)
#local C1=Rand_Chi_Square(M,Stream);
#local C2=Rand_Chi_Square(N,Stream);
#local Return=(M*C1)/(N*C2);
(Return)
#end
//Triangular distribution
//Input: Min, Max, Mode (Min < Mode < Max) and a random stream
#macro Rand_Triangle(Min, Max, Mode, Stream)
#local Right=Max-Mode;
#local Left=Mode-Min;
#local Range=Max-Min;
#local R=rand(Stream);
#if(R<=Left/Range)
#local Return= Min+sqrt(Left*Range*R);
#else
#local Return= Max-sqrt(Right*Range*(1-R));
#end
(Return)
#end
// Erlang variate
// Input: Mu= mean >=0, K= number of exponential samples and a random stream.
#macro Rand_Erlang(Mu, K, Stream)
#local Prod=1;
#local I=0;
#while(I<K)
#local Prod=Prod*rand(Stream);
#local I=I+1;
#end
(-Mu*ln(Prod))
#end
// Exponential distribution
// Input: Lambda = rate = 1/mean
#macro Rand_Exp(Lambda, Stream)
(-ln(rand(Stream))/Lambda)
#end
// Lognormal distribution
// Input: Mu=mean, Sigma= standard deviation and a random stream
#macro Rand_Lognormal(Mu, Sigma, Stream)
(exp(Rand_Gauss(Mu,Sigma,Stream)))
#end
// Pareto distribution
#macro Rand_Pareto(Alpha, Stream)
(1/pow(rand(Stream),(1/Alpha)))
#end
// Weibull distribution
#macro Rand_Weibull(Alpha, Beta, Stream)
(Alpha*pow(-ln(rand(Stream)),(1/Beta)))
#end
////////////////////////////////////
// Discrete Distribution //
////////////////////////////////////
// Bernoulli distribution
// Input: P = probability range: 0 - 1. And a random stream.
// Output: the BOOLEAN value TRUE with a probability equal
// to the value of P and FALSE with a probability of 1 - P.
#macro Rand_Bernoulli(P,Stream)
(P>=rand(Stream)?true:false)
#end
// Binomial distribution
// Input: N= number of trials, P= probability [0-1] and a random stream.
#macro Rand_Binomial(N, P, Stream)
#local Count=0;
#local N=int(N);
#local I=0;
#while (I<N)
#if (rand(Stream)<=P)
#local Count=Count+1;
#end
#local I=I+1;
#end
(Count)
#end
//Geometric distribution
//Input: P=probability [0-1] and a random stream.
#macro Rand_Geo(P, Stream)
(floor(ln(rand(Stream))/ln(1-P)))
#end
// Poisson distribution
// Input: Mu= mean and a random stream.
#macro Rand_Poisson(Mu, Stream)
#local Maxtimes = 100000; //just to be sure
#local Cut=exp(-Mu);
#local N=0;
#local R=1;
#while (R>Cut)
#local R=R*rand(Stream);
#local N=N+1;
#if(N>Maxtimes)
#local R=Cut;
#end
#end
(N)
#end
//signed random number, range [-1, 1]
#macro SRand(RS) (rand(RS)*2 - 1) #end
//random number in specified range [Min, Max]
#macro RRand(Min, Max, RS) (rand(RS)*(Max-Min) + Min) #end
//a random point in a box from < 0, 0, 0> to < 1, 1, 1>
#macro VRand(RS) < rand(RS), rand(RS), rand(RS)> #end
//a random point in a box from Mn to Mx
#macro VRand_In_Box(Mn, Mx, RS) (< rand(RS), rand(RS), rand(RS)>*(Mx-Mn) + Mn) #end
//a random point in a unit-radius sphere centered on the origin
//Thanks to Ingo for this macro, which is faster than the original VRand3()
#macro VRand_In_Sphere(Stream)
#local R = pow(rand(Stream),1/3);
#local Theta = 2*pi*rand(Stream);
#local Phi = acos(2*rand(Stream)-1);
(R*<cos(Theta)*sin(Phi),
sin(Theta)*sin(Phi),
cos(Phi)>)
#end
//a random point on a unit-radius sphere centered on the origin
//Author: Ingo
#macro VRand_On_Sphere(Stream)
#local Theta = 2*pi*rand(Stream);
#local Phi = acos(2*rand(Stream)-1);
(<cos(Theta)*sin(Phi),
sin(Theta)*sin(Phi),
cos(Phi)>)
#end
//a random point inside an arbitrary object
//Warning: can be quite slow if the object occupies a small
//portion of the volume of it's bounding box!
//Also, will not work on objects without a definite "inside".
#macro VRand_In_Obj(Obj, RS)
#local Mn = min_extent(Obj);
#local Mx = max_extent(Obj);
#local Pt = VRand_In_Box(Mn, Mx, RS);
#local J = 0;
#while(inside(Obj, Pt) = 0 & J < 1000)
#local Pt = VRand_In_Box(Mn, Mx, RS);
#local J = J + 1;
#end
(Pt)
#end
#version RAND_INC_TEMP;
#end//rand.inc

View file

@ -0,0 +1,266 @@
#declare RedGranite_Inc_Temp=version;
/*
Persistence of Vision Raytracer Version 3.1
Red Granite color_map
*/
#declare M_RedGranite =
color_map {
[0.000000 rgb <0.439216, 0.407843, 0.454902>]
[0.003922 rgb <0.454902, 0.439216, 0.470588>]
[0.007843 rgb <0.470588, 0.360784, 0.376471>]
[0.011765 rgb <0.470588, 0.454902, 0.486275>]
[0.015686 rgb <0.486275, 0.376471, 0.360784>]
[0.019608 rgb <0.486275, 0.376471, 0.407843>]
[0.023529 rgb <0.486275, 0.423529, 0.439216>]
[0.027451 rgb <0.486275, 0.470588, 0.486275>]
[0.031373 rgb <0.501961, 0.345098, 0.360784>]
[0.035294 rgb <0.501961, 0.407843, 0.439216>]
[0.039216 rgb <0.501961, 0.423529, 0.407843>]
[0.043137 rgb <0.501961, 0.439216, 0.470588>]
[0.047059 rgb <0.501961, 0.470588, 0.501961>]
[0.050980 rgb <0.517647, 0.360784, 0.407843>]
[0.054902 rgb <0.517647, 0.376471, 0.376471>]
[0.058824 rgb <0.517647, 0.407843, 0.423529>]
[0.062745 rgb <0.517647, 0.454902, 0.454902>]
[0.066667 rgb <0.517647, 0.486275, 0.501961>]
[0.070588 rgb <0.517647, 0.501961, 0.533333>]
[0.074510 rgb <0.517647, 0.533333, 0.533333>]
[0.078431 rgb <0.533333, 0.360784, 0.360784>]
[0.082353 rgb <0.533333, 0.392157, 0.392157>]
[0.086275 rgb <0.533333, 0.407843, 0.392157>]
[0.090196 rgb <0.533333, 0.423529, 0.454902>]
[0.094118 rgb <0.533333, 0.454902, 0.486275>]
[0.098039 rgb <0.533333, 0.517647, 0.549020>]
[0.101961 rgb <0.533333, 0.533333, 0.596078>]
[0.105882 rgb <0.549020, 0.345098, 0.298039>]
[0.109804 rgb <0.549020, 0.376471, 0.392157>]
[0.113725 rgb <0.549020, 0.407843, 0.439216>]
[0.117647 rgb <0.549020, 0.423529, 0.423529>]
[0.121569 rgb <0.549020, 0.454902, 0.454902>]
[0.125490 rgb <0.549020, 0.470588, 0.470588>]
[0.129412 rgb <0.549020, 0.470588, 0.501961>]
[0.133333 rgb <0.549020, 0.501961, 0.517647>]
[0.137255 rgb <0.549020, 0.533333, 0.549020>]
[0.141176 rgb <0.549020, 0.549020, 0.580392>]
[0.145098 rgb <0.564706, 0.376471, 0.360784>]
[0.149020 rgb <0.564706, 0.392157, 0.376471>]
[0.152941 rgb <0.564706, 0.392157, 0.407843>]
[0.156863 rgb <0.564706, 0.439216, 0.470588>]
[0.160784 rgb <0.564706, 0.470588, 0.486275>]
[0.164706 rgb <0.564706, 0.501961, 0.533333>]
[0.168627 rgb <0.564706, 0.533333, 0.580392>]
[0.172549 rgb <0.564706, 0.564706, 0.611765>]
[0.176471 rgb <0.564706, 0.580392, 0.596078>]
[0.180392 rgb <0.580392, 0.345098, 0.313726>]
[0.184314 rgb <0.580392, 0.360784, 0.376471>]
[0.188235 rgb <0.580392, 0.376471, 0.345098>]
[0.192157 rgb <0.580392, 0.407843, 0.407843>]
[0.196078 rgb <0.580392, 0.423529, 0.454902>]
[0.200000 rgb <0.580392, 0.454902, 0.439216>]
[0.203922 rgb <0.580392, 0.454902, 0.486275>]
[0.207843 rgb <0.580392, 0.486275, 0.486275>]
[0.211765 rgb <0.580392, 0.517647, 0.533333>]
[0.215686 rgb <0.580392, 0.564706, 0.564706>]
[0.219608 rgb <0.580392, 0.580392, 0.627451>]
[0.223529 rgb <0.580392, 0.580392, 0.674510>]
[0.227451 rgb <0.580392, 0.596078, 0.627451>]
[0.231373 rgb <0.596078, 0.392157, 0.376471>]
[0.235294 rgb <0.596078, 0.407843, 0.376471>]
[0.239216 rgb <0.596078, 0.407843, 0.423529>]
[0.243137 rgb <0.596078, 0.423529, 0.454902>]
[0.247059 rgb <0.596078, 0.439216, 0.423529>]
[0.250980 rgb <0.596078, 0.470588, 0.470588>]
[0.254902 rgb <0.596078, 0.486275, 0.470588>]
[0.258824 rgb <0.596078, 0.486275, 0.517647>]
[0.262745 rgb <0.596078, 0.517647, 0.549020>]
[0.266667 rgb <0.596078, 0.549020, 0.596078>]
[0.270588 rgb <0.596078, 0.580392, 0.596078>]
[0.274510 rgb <0.596078, 0.596078, 0.643137>]
[0.278431 rgb <0.611765, 0.360784, 0.313726>]
[0.282353 rgb <0.611765, 0.392157, 0.360784>]
[0.286275 rgb <0.611765, 0.423529, 0.392157>]
[0.290196 rgb <0.611765, 0.454902, 0.454902>]
[0.294118 rgb <0.611765, 0.470588, 0.501961>]
[0.298039 rgb <0.611765, 0.501961, 0.533333>]
[0.301961 rgb <0.611765, 0.517647, 0.501961>]
[0.305882 rgb <0.611765, 0.533333, 0.549020>]
[0.309804 rgb <0.611765, 0.564706, 0.580392>]
[0.313726 rgb <0.611765, 0.564706, 0.627451>]
[0.317647 rgb <0.611765, 0.611765, 0.627451>]
[0.321569 rgb <0.611765, 0.611765, 0.705882>]
[0.325490 rgb <0.611765, 0.643137, 0.643137>]
[0.329412 rgb <0.611765, 0.658824, 0.737255>]
[0.333333 rgb <0.627451, 0.360784, 0.345098>]
[0.337255 rgb <0.627451, 0.376471, 0.392157>]
[0.341176 rgb <0.627451, 0.407843, 0.392157>]
[0.345098 rgb <0.627451, 0.439216, 0.423529>]
[0.349020 rgb <0.627451, 0.439216, 0.454902>]
[0.352941 rgb <0.627451, 0.454902, 0.470588>]
[0.356863 rgb <0.627451, 0.470588, 0.439216>]
[0.360784 rgb <0.627451, 0.486275, 0.486275>]
[0.364706 rgb <0.627451, 0.533333, 0.564706>]
[0.368627 rgb <0.627451, 0.549020, 0.533333>]
[0.372549 rgb <0.627451, 0.564706, 0.564706>]
[0.376471 rgb <0.627451, 0.580392, 0.611765>]
[0.380392 rgb <0.627451, 0.596078, 0.643137>]
[0.384314 rgb <0.627451, 0.611765, 0.611765>]
[0.388235 rgb <0.627451, 0.627451, 0.674510>]
[0.392157 rgb <0.627451, 0.643137, 0.674510>]
[0.396078 rgb <0.643137, 0.345098, 0.313726>]
[0.400000 rgb <0.643137, 0.392157, 0.345098>]
[0.403922 rgb <0.643137, 0.407843, 0.439216>]
[0.407843 rgb <0.643137, 0.423529, 0.376471>]
[0.411765 rgb <0.643137, 0.454902, 0.407843>]
[0.415686 rgb <0.643137, 0.470588, 0.470588>]
[0.419608 rgb <0.643137, 0.470588, 0.501961>]
[0.423529 rgb <0.643137, 0.501961, 0.470588>]
[0.427451 rgb <0.643137, 0.501961, 0.501961>]
[0.431373 rgb <0.643137, 0.517647, 0.486275>]
[0.435294 rgb <0.643137, 0.533333, 0.517647>]
[0.439216 rgb <0.643137, 0.549020, 0.549020>]
[0.443137 rgb <0.643137, 0.549020, 0.596078>]
[0.447059 rgb <0.643137, 0.580392, 0.596078>]
[0.450980 rgb <0.643137, 0.627451, 0.643137>]
[0.454902 rgb <0.643137, 0.643137, 0.690196>]
[0.458824 rgb <0.658824, 0.423529, 0.423529>]
[0.462745 rgb <0.658824, 0.454902, 0.439216>]
[0.466667 rgb <0.658824, 0.517647, 0.549020>]
[0.470588 rgb <0.658824, 0.517647, 0.580392>]
[0.474510 rgb <0.658824, 0.549020, 0.533333>]
[0.478431 rgb <0.658824, 0.549020, 0.564706>]
[0.482353 rgb <0.658824, 0.580392, 0.611765>]
[0.486275 rgb <0.658824, 0.611765, 0.611765>]
[0.490196 rgb <0.658824, 0.611765, 0.658824>]
[0.494118 rgb <0.658824, 0.658824, 0.658824>]
[0.498039 rgb <0.658824, 0.674510, 0.705882>]
[0.501961 rgb <0.674510, 0.392157, 0.407843>]
[0.505882 rgb <0.674510, 0.407843, 0.360784>]
[0.509804 rgb <0.674510, 0.454902, 0.392157>]
[0.513726 rgb <0.674510, 0.470588, 0.439216>]
[0.517647 rgb <0.674510, 0.470588, 0.486275>]
[0.521569 rgb <0.674510, 0.501961, 0.517647>]
[0.525490 rgb <0.674510, 0.517647, 0.486275>]
[0.529412 rgb <0.674510, 0.580392, 0.564706>]
[0.533333 rgb <0.674510, 0.627451, 0.674510>]
[0.537255 rgb <0.674510, 0.674510, 0.690196>]
[0.541176 rgb <0.674510, 0.690196, 0.737255>]
[0.545098 rgb <0.690196, 0.533333, 0.533333>]
[0.549020 rgb <0.690196, 0.549020, 0.564706>]
[0.552941 rgb <0.690196, 0.564706, 0.596078>]
[0.556863 rgb <0.690196, 0.596078, 0.596078>]
[0.560784 rgb <0.690196, 0.596078, 0.627451>]
[0.564706 rgb <0.690196, 0.627451, 0.627451>]
[0.568627 rgb <0.690196, 0.658824, 0.705882>]
[0.572549 rgb <0.690196, 0.690196, 0.643137>]
[0.576471 rgb <0.690196, 0.705882, 0.752941>]
[0.580392 rgb <0.705882, 0.454902, 0.439216>]
[0.584314 rgb <0.705882, 0.486275, 0.470588>]
[0.588235 rgb <0.705882, 0.517647, 0.486275>]
[0.592157 rgb <0.705882, 0.564706, 0.533333>]
[0.596078 rgb <0.705882, 0.627451, 0.658824>]
[0.600000 rgb <0.705882, 0.658824, 0.658824>]
[0.603922 rgb <0.705882, 0.674510, 0.721569>]
[0.607843 rgb <0.721569, 0.486275, 0.439216>]
[0.611765 rgb <0.721569, 0.517647, 0.533333>]
[0.615686 rgb <0.721569, 0.533333, 0.517647>]
[0.619608 rgb <0.721569, 0.580392, 0.580392>]
[0.623529 rgb <0.721569, 0.596078, 0.611765>]
[0.627451 rgb <0.721569, 0.611765, 0.580392>]
[0.631373 rgb <0.721569, 0.643137, 0.611765>]
[0.635294 rgb <0.721569, 0.643137, 0.674510>]
[0.639216 rgb <0.721569, 0.674510, 0.643137>]
[0.643137 rgb <0.721569, 0.705882, 0.737255>]
[0.647059 rgb <0.721569, 0.737255, 0.768627>]
[0.650980 rgb <0.737255, 0.517647, 0.470588>]
[0.654902 rgb <0.737255, 0.533333, 0.501961>]
[0.658824 rgb <0.737255, 0.564706, 0.549020>]
[0.662745 rgb <0.737255, 0.643137, 0.643137>]
[0.666667 rgb <0.737255, 0.658824, 0.705882>]
[0.670588 rgb <0.737255, 0.690196, 0.674510>]
[0.674510 rgb <0.737255, 0.721569, 0.721569>]
[0.678431 rgb <0.737255, 0.752941, 0.800000>]
[0.682353 rgb <0.752941, 0.564706, 0.580392>]
[0.686275 rgb <0.752941, 0.596078, 0.564706>]
[0.690196 rgb <0.752941, 0.611765, 0.611765>]
[0.694118 rgb <0.752941, 0.643137, 0.674510>]
[0.698039 rgb <0.752941, 0.690196, 0.737255>]
[0.701961 rgb <0.752941, 0.721569, 0.752941>]
[0.705882 rgb <0.752941, 0.737255, 0.737255>]
[0.709804 rgb <0.752941, 0.768627, 0.831373>]
[0.713726 rgb <0.768627, 0.549020, 0.533333>]
[0.717647 rgb <0.768627, 0.596078, 0.611765>]
[0.721569 rgb <0.768627, 0.627451, 0.643137>]
[0.725490 rgb <0.768627, 0.674510, 0.690196>]
[0.729412 rgb <0.768627, 0.721569, 0.705882>]
[0.733333 rgb <0.768627, 0.737255, 0.784314>]
[0.737255 rgb <0.768627, 0.800000, 0.847059>]
[0.741176 rgb <0.784314, 0.564706, 0.549020>]
[0.745098 rgb <0.784314, 0.580392, 0.533333>]
[0.749020 rgb <0.784314, 0.611765, 0.580392>]
[0.752941 rgb <0.784314, 0.643137, 0.611765>]
[0.756863 rgb <0.784314, 0.674510, 0.658824>]
[0.760784 rgb <0.784314, 0.705882, 0.690196>]
[0.764706 rgb <0.784314, 0.705882, 0.737255>]
[0.768627 rgb <0.784314, 0.752941, 0.768627>]
[0.772549 rgb <0.784314, 0.768627, 0.800000>]
[0.776471 rgb <0.800000, 0.658824, 0.674510>]
[0.780392 rgb <0.800000, 0.690196, 0.721569>]
[0.784314 rgb <0.800000, 0.721569, 0.721569>]
[0.788235 rgb <0.800000, 0.721569, 0.768627>]
[0.792157 rgb <0.800000, 0.768627, 0.784314>]
[0.796078 rgb <0.800000, 0.784314, 0.831373>]
[0.800000 rgb <0.815686, 0.596078, 0.564706>]
[0.803922 rgb <0.815686, 0.611765, 0.596078>]
[0.807843 rgb <0.815686, 0.643137, 0.643137>]
[0.811765 rgb <0.815686, 0.690196, 0.674510>]
[0.815686 rgb <0.815686, 0.737255, 0.705882>]
[0.819608 rgb <0.815686, 0.752941, 0.800000>]
[0.823529 rgb <0.815686, 0.800000, 0.847059>]
[0.827451 rgb <0.831373, 0.643137, 0.627451>]
[0.831373 rgb <0.831373, 0.674510, 0.690196>]
[0.835294 rgb <0.831373, 0.690196, 0.737255>]
[0.839216 rgb <0.831373, 0.705882, 0.690196>]
[0.843137 rgb <0.831373, 0.705882, 0.721569>]
[0.847059 rgb <0.831373, 0.737255, 0.752941>]
[0.850980 rgb <0.831373, 0.768627, 0.768627>]
[0.854902 rgb <0.831373, 0.768627, 0.815686>]
[0.858824 rgb <0.831373, 0.847059, 0.878431>]
[0.862745 rgb <0.847059, 0.674510, 0.658824>]
[0.866667 rgb <0.847059, 0.737255, 0.737255>]
[0.870588 rgb <0.847059, 0.784314, 0.847059>]
[0.874510 rgb <0.847059, 0.800000, 0.815686>]
[0.878431 rgb <0.847059, 0.815686, 0.847059>]
[0.882353 rgb <0.847059, 0.831373, 0.878431>]
[0.886275 rgb <0.847059, 0.862745, 0.909804>]
[0.890196 rgb <0.862745, 0.690196, 0.690196>]
[0.894118 rgb <0.862745, 0.721569, 0.737255>]
[0.898039 rgb <0.862745, 0.737255, 0.705882>]
[0.901961 rgb <0.862745, 0.784314, 0.737255>]
[0.905882 rgb <0.862745, 0.831373, 0.800000>]
[0.909804 rgb <0.878431, 0.705882, 0.690196>]
[0.913725 rgb <0.878431, 0.752941, 0.768627>]
[0.917647 rgb <0.878431, 0.784314, 0.784314>]
[0.921569 rgb <0.878431, 0.815686, 0.831373>]
[0.925490 rgb <0.878431, 0.831373, 0.862745>]
[0.929412 rgb <0.878431, 0.847059, 0.894118>]
[0.933333 rgb <0.878431, 0.878431, 0.941176>]
[0.937255 rgb <0.894118, 0.752941, 0.721569>]
[0.941176 rgb <0.894118, 0.831373, 0.800000>]
[0.945098 rgb <0.894118, 0.862745, 0.878431>]
[0.949020 rgb <0.894118, 0.862745, 0.909804>]
[0.952941 rgb <0.894118, 0.909804, 0.956863>]
[0.956863 rgb <0.909804, 0.705882, 0.721569>]
[0.960784 rgb <0.909804, 0.768627, 0.752941>]
[0.964706 rgb <0.909804, 0.800000, 0.800000>]
[0.968627 rgb <0.909804, 0.831373, 0.831373>]
[0.972549 rgb <0.909804, 0.941176, 0.972549>]
[0.976471 rgb <0.925490, 0.784314, 0.784314>]
[0.980392 rgb <0.925490, 0.878431, 0.909804>]
[0.984314 rgb <0.925490, 0.894118, 0.941176>]
[0.988235 rgb <0.941176, 0.925490, 0.972549>]
[0.992157 rgb <0.941176, 0.956863, 0.988235>]
[0.996078 rgb <0.956863, 0.862745, 0.831373>]
}
#version RedGranite_Inc_Temp;

View file

@ -0,0 +1,153 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Raytracer Version 3.5
// Screen Include File
// Created by Christoph Hormann, Chris Huff and Rune S. Johansen.
// Screen.inc will enable you to place objects and textures right in front
// of the camera. One use of this is to place your signature or a logo in
// the corner of the image.
// You can only use screen.inc with the perspective camera. Screen.inc
// will automatically create the camera definition for you when it is
// included.
// Note that even though objects aligned using screen.inc follow the
// camera, they are still part of the scene. That means that they will be
// affected by perspective, lighting, the surroundings etc.
// For instructions of use, look in the POV-Ray manual, and for an example
// of use, see screen.pov.
#ifndef(Screen_Inc_Temp)
#declare Screen_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including screen.inc\n"
#end
#macro Update_Camera()
#ifndef (Camera_Aspect_Ratio)
#declare Camera_Aspect_Ratio = image_width/image_height;
#end
#ifndef (Camera_Location) #declare Camera_Location = <0,0,0>; #end
#ifndef (Camera_Look_At) #declare Camera_Look_At = z; #end
#ifndef (Camera_Sky) #declare Camera_Sky = y; #end
#ifndef (Camera_Zoom) #declare Camera_Zoom = 1; #end
#declare CamL=Camera_Location; // wherever you're putting it
#declare CamD=vnormalize(Camera_Look_At-CamL); // direction of camera view
#declare CamR=vnormalize(vcross(Camera_Sky,CamD)); // to the right
#declare CamU=vnormalize(vcross(CamD,CamR)); // camera up
#declare Camera_Transform =
transform {
matrix <
CamR.x, CamR.y, CamR.z,
CamU.x, CamU.y, CamU.z,
CamD.x, CamD.y, CamD.z,
CamL.x, CamL.y, CamL.z
>
}
camera {
direction CamD*Camera_Zoom
right CamR*Camera_Aspect_Ratio
up CamU
sky Camera_Sky
location CamL
}
#end
Update_Camera()
#macro Set_Camera_Location(Loc)
#declare Camera_Location = Loc;
Update_Camera()
#end
#macro Set_Camera_Look_At(LookAt)
#declare Camera_Look_At = LookAt;
Update_Camera()
#end
#macro Set_Camera_Aspect_Ratio(Aspect)
#declare Camera_Aspect_Ratio = Aspect;
Update_Camera()
#end
#macro Set_Camera_Aspect(Width,Height)
#declare Camera_Aspect_Ratio = Width/Height;
Update_Camera()
#end
#macro Set_Camera_Sky(Sky)
#declare Camera_Sky = Sky;
Update_Camera()
#end
#macro Set_Camera_Zoom(Zoom)
#declare Camera_Zoom = Zoom;
Update_Camera()
#end
#macro Set_Camera_Angle(Angle)
#declare Camera_Zoom = 0.5/tan(radians(Angle/2))*Camera_Aspect_Ratio;
Update_Camera()
#end
#macro Set_Camera(Location, LookAt, Angle)
#declare Camera_Location = Location;
#declare Camera_Look_At = LookAt;
Set_Camera_Angle(Angle)
Update_Camera()
#end
#macro Reset_Camera()
#undef Camera_Location
#undef Camera_Aspect_Ratio
#undef Camera_Location
#undef Camera_Look_At
#undef Camera_Sky
#undef Camera_Zoom
Update_Camera()
#end
#macro Screen_Object (Object, Position, Spacing, Confine, Scaling)
#local Obj_Max = max_extent(Object);
#local Obj_Min = min_extent(Object);
#local Obj_Cen = (Obj_Max+Obj_Min)/2;
#local Obj_Dim = (Obj_Max-Obj_Min)/2;
#local Pos = (Position-0.5)*2;
#local Pos = (
+<Pos.x*Camera_Aspect_Ratio/2,Pos.y/2,Camera_Zoom>
+( -Obj_Cen -Pos*(Obj_Dim+Spacing) ) * Confine
);
object {
Object
no_shadow // shouldn't cast shadows in the scene
no_reflection // shouldn't be reflected in scene elements
no_radiosity // also make the object invisible to radiosity rays
translate Pos
scale Scaling
transform {Camera_Transform}
}
#end
#macro Screen_Plane (Texture, Scaling, BLCorner, TRCorner)
box {
<-0.000001,-0.000001,0>, <+1.000001,+1.000001,0>
texture {Texture}
scale TRCorner*<1,1,0>-BLCorner*<1,1,0>+z
translate BLCorner*<1,1,0>+<-0.5,-0.5,0>
scale <Camera_Aspect_Ratio,1,1>
no_shadow // shouldn't cast shadows in the scene
no_reflection // shouldn't be reflected in scene elements
hollow on // for media/fog
translate Camera_Zoom*z
scale Scaling
transform {Camera_Transform}
}
#end
#version Screen_Inc_Temp;
#end

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,190 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
#ifndef(Shapes2_Inc_Temp)
#declare Shapes2_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
# debug "including shapes2.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.1
Implements additional, useful, but seldom used shapes
Contents:
=========
Tetrahedron HalfCone_Y
Octahedron Pyramid
Dodecahedron Pyramid2
Icosahedron Square_X
Rhomboid Square_Y
Hexagon Square_Z
*/
// Shapes by Tom Price [75300,620]:
#declare Tetrahedron =
intersection
{plane {-y,1}
plane {-z,1 rotate <19.47, 0, 0>}
plane {-z,1 rotate <19.47, -120, 0>}
plane {-z,1 rotate <19.47, 120, 0>}
bounded_by {sphere {0, 3}}
}
#declare Octahedron =
intersection
{plane { z, 1 rotate < 35.26438968275, 0, 0>}
plane { z, 1 rotate <-35.26438968275, 0, 0>}
plane {-z, 1 rotate < 35.26438968275, 0, 0>}
plane {-z, 1 rotate <-35.26438968275, 0, 0>}
plane { x, 1 rotate <0, 0, -35.26438968275>}
plane { x, 1 rotate <0, 0, 35.26438968275>}
plane {-x, 1 rotate <0, 0, -35.26438968275>}
plane {-x, 1 rotate <0, 0, 35.26438968275>}
bounded_by {sphere {0, 1.7321}}
}
#declare Dodecahedron =
intersection
{plane {-z, 1 rotate <-26.56505117708, 0, 0>}
plane {-z, 1 rotate <-26.56505117708, -72, 0>}
plane {-z, 1 rotate <-26.56505117708, -144, 0>}
plane {-z, 1 rotate <-26.56505117708, -216, 0>}
plane {-z, 1 rotate <-26.56505117708, -288, 0>}
plane {-z, 1 rotate <26.56505117708, -36, 0>}
plane {-z, 1 rotate <26.56505117708, -108, 0>}
plane {-z, 1 rotate <26.56505117708, -180, 0>}
plane {-z, 1 rotate <26.56505117708, -252, 0>}
plane {-z, 1 rotate <26.56505117708, -324, 0>}
plane { y, 1}
plane {-y, 1}
bounded_by {sphere {0, 1.2585}}
}
#declare Icosahedron =
intersection
{plane {-z, 1 rotate <52.6625, 0, 0>}
plane {-z, 1 rotate <52.6625, -72, 0>}
plane {-z, 1 rotate <52.6625, -144, 0>}
plane {-z, 1 rotate <52.6625, -216, 0>}
plane {-z, 1 rotate <52.6625, -288, 0>}
plane {-z, 1 rotate <10.8125, 0, 0>}
plane {-z, 1 rotate <10.8125, -72, 0>}
plane {-z, 1 rotate <10.8125, -144, 0>}
plane {-z, 1 rotate <10.8125, -216, 0>}
plane {-z, 1 rotate <10.8125, -288, 0>}
plane {-z, 1 rotate <-52.6625, -36, 0>}
plane {-z, 1 rotate <-52.6625, -108, 0>}
plane {-z, 1 rotate <-52.6625, -180, 0>}
plane {-z, 1 rotate <-52.6625, -252, 0>}
plane {-z, 1 rotate <-52.6625, -324, 0>}
plane {-z, 1 rotate <-10.8125, -36, 0>}
plane {-z, 1 rotate <-10.8125, -108, 0>}
plane {-z, 1 rotate <-10.8125, -180, 0>}
plane {-z, 1 rotate <-10.8125, -252, 0>}
plane {-z, 1 rotate <-10.8125, -324, 0>}
bounded_by {sphere {0, 1.2585}}
}
// Shapes by others
// Convenient finite cone primitive, pointing up in the Y axis
#declare HalfCone_Y =
intersection
{object {Cone_Y}
plane { y, 0}
plane {-y, 2}
translate <0, 1, 0>
scale <0.5, 1, 0.5>
bounded_by {sphere{0, 1.5}}
}
/* Hexagonal Solid, axis along x */
#declare Hexagon =
intersection
{plane {z, 1} /* Rotate 90 in z axis to stand up */
plane {z, 1 rotate < 60, 0, 0>}
plane {z, 1 rotate <120, 0, 0>}
plane {z, 1 rotate <180, 0, 0>}
plane {z, 1 rotate <240, 0, 0>}
plane {z, 1 rotate <300, 0, 0>}
plane { x, 1}
plane {-x, 1}
bounded_by {sphere{0, 1.5}}
}
/* Three Dimensional 4-Sided Diamond */
#declare Rhomboid =
intersection
{plane {-x, 1 rotate <0, 0, -30>}
plane { x, 1 rotate <0, 0, -30>}
plane { z, 1}
plane {-z, 1}
plane { y, 1}
plane {-y, 1}
bounded_by {sphere{0, 2.3}}
}
// Classic four-sided pyramids.
// The first can't be used correctly in CSG, the second can.
#declare Pyramid =
union { // This isn't true CSG, it's just used for convenience
triangle { <-1, 0, -1>, <+1, 0, -1>, <0, 1, 0> }
triangle { <+1, 0, -1>, <+1, 0, +1>, <0, 1, 0> }
triangle { <-1, 0, +1>, <+1, 0, +1>, <0, 1, 0> }
triangle { <-1, 0, +1>, <-1, 0, -1>, <0, 1, 0> }
triangle { <-1, 0, -1>, <-1, 0, +1>, <1, 0, +1> }
triangle { <-1, 0, -1>, <+1, 0, -1>, <1, 0, +1> }
scale <1, 2, 1>
translate -y
}
#declare Pyramid2 = intersection {
plane { < 1, 0, 0>, 1 rotate < 0, 0, 40>}
plane { <-1, 0, 0>, 1 rotate < 0, 0, -40>}
plane { < 0, 0, 1>, 1 rotate <-40, 0, 0>}
plane { < 0, 0, -1>, 1 rotate < 40, 0, 0>}
plane { <0, -1, 0>, 0 }
translate <0 ,-1, 0>
bounded_by {box {<-1,0,-1>, <1,1,1>}}
}
// These next three are finite planes.
#declare Square_X = /* Scale-able plane in x */
union
{triangle {<0, 1, -1>, <0, -1, 1>, <0, 1, 1>}
triangle {<0, 1, -1>, <0, -1, 1>, <0, -1, -1>}
}
#declare Square_Y = /* Scale-able plane in y */
union
{triangle {<-1, 0, 1>, <1, 0, -1>, < 1, 0, 1>}
triangle {<-1, 0, 1>, <1, 0, -1>, <-1, 0, -1>}
}
#declare Square_Z = /* Scale-able plane in z */
union
{triangle {<-1, 1, 0>, <1, -1, 0>, <-1, -1, 0>}
triangle {<-1, 1, 0>, <1, -1, 0>, < 1, 1, 0>}
}
#version Shapes2_Inc_Temp;
#end

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,161 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
#ifndef(Shapes_Old_Inc_Temp)
#declare Shapes_Old_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including shapes_old.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.5
IMPORTANT!
This collection of standard shapes has been around since the days
of DKB-Trace and early versions of POV-Ray. Those versions had no
optomized primatives for planes, cones, disks etc. Some of the definitions
below may seem trivial or unnecessary given the POV-Ray 2.0 and higher
object primatives. We have retained these objects for compatibility with
earlier versions.
With the release of POV-Ray 1.0, some of these shapes, in particular,
the "Disk_?" group, were changed from an earlier beta test and DKB-Trace
style. The file "shapes.old" is also included in this package for
compatibility with pre-1.0 scenes.
*/
//2001.7.27: renamed as shapes_old.inc for POV 3.5. The new shapes.inc
//file includes this file, so backwards compatability is preserved.
#declare Ellipsoid =
sphere {<0, 0, 0>,1}
#declare Sphere =
sphere {<0, 0, 0>,1}
#declare Cylinder_X =
quadric
{<0, 1, 1>,
<0, 0, 0>,
<0, 0, 0>, -1
}
#declare Cylinder_Y =
quadric
{<1, 0, 1>,
<0, 0, 0>,
<0, 0, 0>, -1
}
#declare Cylinder_Z =
quadric
{<1, 1, 0>,
<0, 0, 0>,
<0, 0, 0>, -1
}
// Infinite cones
#declare QCone_X =
quadric
{<-1, 1, 1>,
< 0, 0, 0>,
< 0, 0, 0>, 0
}
#declare QCone_Y =
quadric
{<1, -1, 1>,
<0, 0, 0>,
<0, 0, 0>, 0
}
#declare QCone_Z =
quadric
{<1, 1, -1>,
<0, 0, 0>,
<0, 0, 0>, 0
}
// Unit cones
// The Cone_n objects were formerly defined as intersections of
// quadrics and boxes but now can be redefined with the cone primative.
#declare Cone_X = cone {x,0,-x,1}
#declare Cone_Y = cone {y,0,-y,1}
#declare Cone_Z = cone {z,0,-z,1}
// The Plane_nn objects were formerly defined as quadrics but now can
// be redefined as a plane.
#declare Plane_YZ = plane {x,0}
#declare Plane_XZ = plane {y,0}
#declare Plane_XY = plane {z,0}
/* y^2 + z^2 - x = 0 */
#declare Paraboloid_X =
quadric
{< 0, 1, 1>,
< 0, 0, 0>,
<-1, 0, 0>, 0
}
/* x^2 + z^2 - y = 0 */
#declare Paraboloid_Y =
quadric
{<1, 0, 1>,
<0, 0, 0>,
<0, -1, 0>, 0
}
/* x^2 + y^2 - z = 0 */
#declare Paraboloid_Z =
quadric
{<1, 1, 0>,
<0, 0, 0>,
<0, 0, -1>, 0
}
/* y - x^2 + z^2 = 0 */
#declare Hyperboloid =
quadric
{<-1, 0, 1>,
< 0, 0, 0>,
< 0, 1, 0>, 0
}
#declare Hyperboloid_Y =
quadric /* Vertical hyperboloid */
{<1, -1, 1>, /* */
<0, 0, 0>, /* \ / */
<0, 0, 0>, -1 /* Like this: ) ( */
} /* / \ */
// Cube using the procedural box primitive
#declare UnitBox = box { <-1, -1, -1>, <1, 1, 1> }
// This primitive used to be an intersection of six planes. For speed,
// it is now a box and nothing else.
#declare Cube = box { <-1, -1, -1>, <1, 1, 1> }
// The Disk primitives are "capped" cylinders of unit length.
//
// They are now "unit" size, the same as a sphere with a radius of 1.
// They will now scale evenly in all directions.
#declare Disk_X = /* Capped cylinder, Length in x axis */
cylinder { x,-x,1}
#declare Disk_Y = /* Capped cylinder, Length in y axis */
cylinder { y,-y,1}
#declare Disk_Z = /* Capped cylinder, Length in z axis */
cylinder { z,-z,1}
#version Shapes_Old_Inc_Temp;
#end

View file

@ -0,0 +1,339 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
#ifndef(ShapesQ_Inc_Temp)
#declare ShapesQ_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
# debug "including shapesq.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.1
Quartic shapes include file
Several cubic and quartic shape definitions
by Alexander Enzmann
In the following descriptions, multiplication of two terms is
shown as the two terms next to each other (i.e. x y, rather than
x*y. The expression c(n, m) is the binomial coefficient, n!/m!(n-m)!.
*/
/* Bicorn
This curve looks like the top part of a paraboloid, bounded
from below by another paraboloid. The basic equation is:
y^2 - (x^2 + z^2) y^2 - (x^2 + z^2 + 2 y - 1)^2 = 0. */
#declare Bicorn =
quartic
{< 1, 0, 0, 0, 1, 0, 4, 2, 0, -2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 3, 0, 4, 0, -4,
1, 0, -2, 0, 1>
}
/* Crossed Trough
This is a surface with four pieces that sweep up from the x-z plane.
The equation is: y = x^2 z^2. */
#declare Crossed_Trough =
quartic
{< 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, -1,
0, 0, 0, 0, 0>
}
/* a drop coming out of water? This is a curve formed by using the equation
y = 1/2 x^2 (x + 1) as the radius of a cylinder having the x-axis as
its central axis. The final form of the equation is:
y^2 + z^2 = 0.5 (x^3 + x^2) */
#declare Cubic_Cylinder =
quartic
{< 0, 0, 0, -0.5, 0, 0, 0, 0, 0, -0.5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0>
}
/* a cubic saddle. The equation is: z = x^3 - y^3. */
#declare Cubic_Saddle_1 =
quartic
{< 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -1, 0>
}
/* Variant of a devil's curve in 3-space. This figure has a top and
bottom part that are very similar to a hyperboloid of one sheet,
however the central region is pinched in the middle leaving two
teardrop shaped holes. The equation is:
x^4 + 2 x^2 z^2 - 0.36 x^2 - y^4 + 0.25 y^2 + z^4 = 0. */
#declare Devils_Curve =
quartic
{<-1, 0, 0, 0, 0, 0, 0, -2, 0, 0.36,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, -0.25, 0, 0, 0, 0,
-1, 0, 0, 0, 0>
}
/* Folium
This is a folium rotated about the x-axis. The formula is:
2 x^2 - 3 x y^2 - 3 x z^2 + y^2 + z^2 = 0. */
#declare Folium =
quartic
{< 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
0, 0, -3, 0, 0, 0, 0, -3, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0>
}
/* Glob - sort of like basic teardrop shape. The equation is:
y^2 + z^2 = 0.5 x^5 + 0.5 x^4. */
#declare Glob_5 =
poly
{5,
<-0.5, 0, 0, -0.5, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0>
}
/* Variant of a lemniscate - the two lobes are much more teardrop-like. */
#declare Twin_Glob =
poly
{6,
< 4, 0, 0, 0, 0, 0, 0, 0, 0, -4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0>
}
/* Approximation to the helix z = arctan(y/x).
The helix can be approximated with an algebraic equation (kept to the
range of a quartic) with the following steps:
tan(z) = y/x => sin(z)/cos(z) = y/x =>
(1) x sin(z) - y cos(z) = 0
Using the taylor expansions for sin, cos about z = 0,
sin(z) = z - z^3/3! + z^5/5! - ...
cos(z) = 1 - z^2/2! + z^6/6! - ...
Throwing out the high order terms, the expression (1) can be written as:
x (z - z^3/6) - y (1 + z^2/2) = 0, or
(2) -1/6 x z^3 + x z + 1/2 y z^2 - y = 0
This helix (2) turns 90 degrees in the range 0 <= z <= sqrt(2)/2. By using
scale <2 2 2>, the helix defined below turns 90 degrees in the range
0 <= z <= sqrt(2) = 1.4042.
*/
#declare Helix =
quartic
{< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -0.1666, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0.5, 0, -1,
0, 0, 0, 0, 0>
clipped_by
{object {Cylinder_Z scale 2}
plane { z, 1.4142}
plane {-z, 0}
}
bounded_by{clipped_by}
}
/* This is an alternate Helix, using clipped_by instead of csg intersection. */
#declare Helix_1 = object {Helix}
/* Hyperbolic Torus having major radius sqrt(40), minor radius sqrt(12).
This figure is generated by sweeping a circle along the arms of a
hyperbola. The equation is:
x^4 + 2 x^2 y^2 - 2 x^2 z^2 - 104 x^2 + y^4 - 2 y^2 z^2 +
56 y^2 + z^4 + 104 z^2 + 784 = 0.
See the description for the torus below. */
#declare Hyperbolic_Torus_40_12 =
quartic
{< 1, 0, 0, 0, 2, 0, 0, -2, 0, -104,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, -2, 0, 56, 0, 0, 0, 0,
1, 0, 104, 0, 784>
}
/* Lemniscate of Gerono
This figure looks like two teardrops with their pointed ends connected.
It is formed by rotating the Lemniscate of Gerono about the x-axis.
The formula is:
x^4 - x^2 + y^2 + z^2 = 0. */
#declare Lemniscate =
quartic
{< 1, 0, 0, 0, 0, 0, 0, 0, 0, -1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0>
}
/* This is a figure with a bumpy sheet on one side and something that
looks like a paraboloid (but with an internal bubble). The formula
is:
(x^2 + y^2 + a c x)^2 - (x^2 + y^2)(c - a x)^2.
-99*x^4+40*x^3-98*x^2*y^2-98*x^2*z^2+99*x^2+40*x*y^2+40*x*z^2+y^4+2*y^2*z^2
-y^2+z^4-z^2
*/
#declare Quartic_Loop_1 =
quartic
{<99, 0, 0, -40, 98, 0, 0, 98, 0, -99,
0, 0, -40, 0, 0, 0, 0, -40, 0, 0,
-1, 0, 0, -2, 0, 1, 0, 0, 0, 0,
-1, 0, 1, 0, 0>
}
/* Monkey Saddle
This surface has three parts that sweep up and three down. This gives
a saddle that has a place for two legs and a tail... The equation is:
z = c (x^3 - 3 x y^2).
The value c gives a vertical scale to the surface - the smaller the
value of c, the flatter the surface will be (near the origin). */
#declare Monkey_Saddle =
quartic
{< 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, -3, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -1, 0>
}
/* Parabolic Torus having major radius sqrt(40), minor radius sqrt(12).
This figure is generated by sweeping a circle along the arms of a
parabola. The equation is:
x^4 + 2 x^2 y^2 - 2 x^2 z - 104 x^2 + y^4 - 2 y^2 z +
56 y^2 + z^2 + 104 z + 784 = 0.
See the description for the torus below. */
#declare Parabolic_Torus_40_12 =
quartic
{< 1, 0, 0, 0, 2, 0, 0, 0, -2, -104,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, -2, 56, 0, 0, 0, 0,
0, 0, 1, 104, 784>
}
/* Piriform
This figure looks like a hersheys kiss. It is formed by sweeping
a Piriform about the x-axis. a basic form of the equation is:
(x^4 - x^3) + y^2 + z^2 = 0.
*/
#declare Piriform =
quartic
{< 4, 0, 0, -4, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0>
}
/* n-Roll Mill
This curve in the plane looks like several hyperbolas with their
bumps arranged about the origin. The general formula is:
x^n - c(n,2) x^(n-2) y^2 + c(n,4) x^(n-4) y^4 - ... = a
When rendering in 3-Space, the resulting figure looks like a
cylinder with indented sides.
*/
/* Quartic parabola - a 4th degree polynomial (has two bumps at the bottom)
that has been swept around the z axis. The equation is:
0.1 x^4 - x^2 - y^2 - z^2 + 0.9 = 0. */
#declare Quartic_Paraboloid =
quartic
{< 0.1, 0, 0, 0, 0, 0, 0, 0, 0, -1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, -1,
0, 0, -1, 0, 0.9>
}
/* Quartic Cylinder - a Space Needle? */
#declare Quartic_Cylinder =
quartic
{< 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.01,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0.01, 0, -0.01>
}
/* Steiners quartic surface */
#declare Steiner_Surface =
quartic
{< 0, 0, 0, 0, 1, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0>
}
/* Torus having major radius sqrt(40), minor radius sqrt(12) */
#declare Torus_40_12 =
quartic
{< 1, 0, 0, 0, 2, 0, 0, 2, 0, -104,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 2, 0, 56, 0, 0, 0, 0,
1, 0, -104, 0, 784>
}
/* Witch of Agnesi */
#declare Witch_Hat =
quartic
{< 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1, 0, 0.04,
0, 0, 0, 0, 0.04>
}
/* very rough approximation to the sin-wave surface z = sin(2 pi x y).
In order to get an approximation good to 7 decimals at a distance of
1 from the origin would require a polynomial of degree around 60. This
would require around 200k coefficients. For best results, scale by
something like <1 1 0.2>. */
#declare Sinsurf =
poly
{6,
< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-1116.226, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 18.8496,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -1, 0>
}
/* Empty quartic equation. Ready to be filled with numbers...
quartic
{< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0>
}
*/
#version ShapesQ_Inc_Temp;
#end

View file

@ -0,0 +1,348 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: skies.inc
// Last updated: 2001.7.24
// Description: Sky textures, sky_spheres, and sky objects.
#ifndef(Skies_Inc_Temp)
#declare Skies_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including skies.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.1
Contents:
Pigments: (building blocks for the stuff below)
P_Cloud1 pigment layer, contains clear regions. Use with background.
P_Cloud2 pigment layer, contains clear regions. Use with background.
P_Cloud3 pigment layer, contains clear regions. Use with background.
SkySpheres:
S_Cloud1 sky_sphere, uses P_Cloud2.
S_Cloud2 sky_sphere uses P_Cloud2.
S_Cloud3 sky_sphere uses P_Cloud3.
S_Cloud4 sky_sphere uses P_Cloud3.
S_Cloud5 sky_sphere. Opaque.
Textures:
T_Cloud1 2-layer texture using P_Cloud1 pigment, contains clear regions.
T_Cloud2 1-layer texture, contains clear regions.
T_Cloud3 2-layer texture, contains clear regions.
Objects:
O_Cloud1 sphere, radius 10000 with T_Cloud1 texture.
O_Cloud2 union of 2 planes, with T_Cloud2 and T_Cloud3.
*/
#declare P_Cloud1 =
pigment {
bozo
turbulence 0.65
octaves 6
omega 0.7
lambda 2
color_map {
[0.0, 0.1 color red 0.85 green 0.85 blue 0.85
color red 0.75 green 0.75 blue 0.75]
[0.1, 0.5 color red 0.75 green 0.75 blue 0.75
color Clear]
[0.5, 1.001 color Clear
color Clear]
}
scale <6, 1, 6>
}
#declare P_Cloud2 =
pigment {
wrinkles
turbulence 0.65
octaves 6
omega 0.7
lambda 2
color_map {
[0.0, 0.1 color red 0.85 green 0.85 blue 0.85
color red 0.75 green 0.75 blue 0.75]
[0.1, 0.5 color red 0.75 green 0.75 blue 0.75
color rgb <0.258, 0.258, 0.435> ]
[0.5, 1.001 color rgb <0.258, 0.258, 0.435>
color rgb <0.258, 0.258, 0.435> ]
}
scale <6, 1, 6>
}
#declare P_Cloud3 =
pigment {
bozo
color_map {
[0.0, 0.1 color red 0.85 green 0.85 blue 0.85
color red 0.55 green 0.60 blue 0.65]
[0.1, 0.5 color red 0.55 green 0.60 blue 0.65
color rgb <0.184, 0.184, 0.309> ]
[0.5, 1.001 color rgb <0.184, 0.184, 0.309>
color rgb <0.1, 0.1, 0.2>]
}
turbulence 0.65
octaves 6
omega 0.707
lambda 2
scale <6, 4, 6>
}
#declare P_Cloud4 =
pigment {
wrinkles
turbulence 0.1
lambda 2.2
omega 0.707
color_map {
[0.20 SkyBlue * 0.85 ]
[0.50 White ]
[1.00 Gray70 ]
}
scale <0.5, 0.15, 1>
}
#declare S_Cloud1 =
sky_sphere {
pigment {
gradient y
pigment_map {
[0.01 rgb <0.847, 0.749, 0.847> ] // horizon
[0.25 P_Cloud2 scale 0.25 rotate z*5]
[0.60 P_Cloud3 scale <0.25, 0.15, 0.25> rotate z*10]
}
}
}
#declare S_Cloud2 =
sky_sphere {
pigment {
gradient y
pigment_map {
[0.00 rgb <0.847, 0.749, 0.847> ] // horizon
[0.10 SkyBlue ] // horizon
[0.20 P_Cloud4 ]
}
}
}
#declare S_Cloud3 =
sky_sphere {
pigment {
gradient y
pigment_map {
[0.10 rgb <0.258, 0.258, 0.435> ]
[0.25 P_Cloud2 scale 0.15 ]
}
}
}
#declare S_Cloud4 =
sky_sphere {
pigment {
gradient y
pigment_map {
[0.00 rgb <0.184, 0.184, 0.309> ]
[0.15 P_Cloud3 scale <0.05, 0.40, 0.05> rotate z*30 ]
[0.45 P_Cloud3 scale <0.25, 0.15, 0.50> ]
}
}
}
#declare S_Cloud5 =
sky_sphere {
pigment { rgb <0.258, 0.258, 0.435> }
pigment {
bozo
turbulence 1.5
octaves 10
omega .5
lambda 2.5
color_map {
[0.0, 0.5 color rgbt<.75, .75, .75, 0>
color rgbt<.9, .9, .9, .9> ]
[0.5, 0.7 color rgbt<.9, .9, .9, .9>
color rgbt<1, 1, 1, 1> ]
[0.7, 1.0 color rgbt<1, 1, 1, 1>
color rgbt<1, 1, 1, 1> ]
}
scale <1, 0.3, 10>
}
pigment {
bozo
turbulence 0.6
octaves 10
omega .5
lambda 2.5
color_map {
[0.0, 0.4 color rgbt<.75, .75, .75, 0>
color rgbt<.9, .9, .9, .9> ]
[0.4, 0.7 color rgbt<.9, .9, .9, .9>
color rgbt<1, 1, 1, 1> ]
[0.7, 1.0 color rgbt<1, 1, 1, 1>
color rgbt<1, 1, 1, 1> ]
}
scale <1, 0.3, 10>
}
pigment {
bozo
turbulence 0.8
octaves 10
omega .5
lambda 2.5
color_map {
[0.0, 0.4 color rgbt<.75, .75, .75, 0>
color rgbt<.9, .9, .9, .9> ]
[0.4, 0.6 color rgbt<.9, .9, .9, .9>
color rgbt<1, 1, 1, 1> ]
[0.6, 1.0 color rgbt<1, 1, 1, 1>
color rgbt<1, 1, 1, 1> ]
}
scale <1, 0.3, 10>
}
}
// ***********************************
// Bill Pulver's FBM Clouds
// A three-layer cloud texture.
// ***********************************
#declare T_Cloud1 =
texture { // The upper part of the clouds
pigment {
P_Cloud1
}
finish {
ambient 1.0
diffuse 0
}
}
texture { // The darker underside of the clouds
pigment {
P_Cloud1
translate -0.15*y
}
finish {
ambient 0.6
diffuse 0
}
}
// T_Cloud1 mapped onto a sphere
#declare O_Cloud1 =
sphere { <0,0,0>, 10000
texture {
T_Cloud1
scale 1000
}
}
// ***********************************
// Darin Dugger's "Kite" clouds
// ***********************************
#declare T_Cloud2 =
texture {
pigment {
bozo
turbulence 1.5
octaves 10
omega .5
lambda 2.5
color_map {
[0.0, 0.5 color rgbt<.75, .75, .75, 0>
color rgbt<.9, .9, .9, .9> ]
[0.5, 0.7 color rgbt<.9, .9, .9, .9>
color rgbt<1, 1, 1, 1> ]
[0.7, 1.0 color rgbt<1, 1, 1, 1>
color rgbt<1, 1, 1, 1> ]
}
}
finish {
ambient 0.9
diffuse 0.1
}
}
#declare T_Cloud3 =
texture {
pigment {
bozo
turbulence 0.8 //0.6
octaves 10
omega .5
lambda 2.5
color_map {
[0.0, 0.4 color rgbt<.75, .75, .75, 0>
color rgbt<.9, .9, .9, .9> ]
[0.4, 0.7 color rgbt<.9, .9, .9, .9>
color rgbt<1, 1, 1, 1> ]
[0.7, 1.0 color rgbt<1, 1, 1, 1>
color rgbt<1, 1, 1, 1> ]
}
}
finish {
ambient 1.0
diffuse 0.0
}
}
texture {
pigment {
bozo
turbulence 0.8 //0.6
octaves 10
omega .5
lambda 2.5
color_map {
[0.0, 0.4 color rgbt<.75, .75, .75, 0>
color rgbt<.9, .9, .9, .9> ]
[0.4, 0.6 color rgbt<.9, .9, .9, .9>
color rgbt<1, 1, 1, 1> ]
[0.6, 1.0 color rgbt<1, 1, 1, 1>
color rgbt<1, 1, 1, 1> ]
}
}
finish {
ambient 0.95
diffuse 0.0
}
scale .9
translate y*-0.15
}
// Darin Dugger's DD_Cloud_Sky texture mapped onto a pair of planes
// NOTE: Lowest plane is at y=500
#declare O_Cloud2 =
union {
plane { y, 500
texture {
T_Cloud3
scale 600
}
}
plane { y, 3000
texture {
T_Cloud2
scale <900,1,6000>
translate x*3000
rotate -30*y
}
}
}
#version Skies_Inc_Temp;
#end

Binary file not shown.

View file

@ -0,0 +1,22 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence Of Vision Raytracer version 3.1 sample file.
#include "colors.inc"
#include "textures.inc"
#include "shapes.inc"
#declare Camera1=
camera {
location <0, 0, -60>
direction <0, 0, 10>
look_at <0, 0, 0>
}
camera { Camera1 }
light_source { <1000, 1000, -2000> color White}
plane { z, 1.01 pigment {checker color White color rgb <1,.8,.8>}hollow on }

View file

@ -0,0 +1,160 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
#ifndef(Stars_Inc_Temp)
#declare Stars_Inc_Temp=version;
#version 3.5;
/*
Persistence of Vision Raytracer Version 3.1
Here are some updated/additional Starfield textures which you can include
in distribution with POVRAY 3.1. These textures use some of the new
features in POVRAY 3.1. The starfields become more "dense" as you progress
from Starfield1 to Starfield6 and add a little color since all stars are not
white but light shades of white, blue, red, and yellow.
Respectfully;
Jeff Burton
jburton@apex.net
http://www.geocities.com/SoHo/2365
*/
#declare Starfield1 =
texture {
pigment {
granite
color_map {
[ 0.000 0.270 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.270 0.280 color rgb <.5,.5,.4> color rgb <.8,.8,.4> ]
[ 0.280 0.470 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.470 0.480 color rgb <.4,.4,.5> color rgb <.4,.4,.8> ]
[ 0.480 0.680 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.680 0.690 color rgb <.5,.4,.4> color rgb <.8,.4,.4> ]
[ 0.690 0.880 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.880 0.890 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ]
[ 0.890 1.000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
}
turbulence 1
sine_wave
scale .5
}
finish { diffuse 0 ambient 1 }
}
#declare Starfield2 =
texture {
pigment {
granite
color_map {
[ 0.000 0.270 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.270 0.285 color rgb <.5,.5,.4> color rgb <.8,.8,.4> ]
[ 0.285 0.470 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.470 0.485 color rgb <.4,.4,.5> color rgb <.4,.4,.8> ]
[ 0.485 0.680 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.680 0.695 color rgb <.5,.4,.4> color rgb <.8,.4,.4> ]
[ 0.695 0.880 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.880 0.895 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ]
[ 0.895 1.000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
}
turbulence 1
sine_wave
scale .5
}
finish { diffuse 0 ambient 1 }
}
#declare Starfield3 =
texture {
pigment {
granite
color_map {
[ 0.000 0.270 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.270 0.290 color rgb <.5,.5,.4> color rgb <.8,.8,.4> ]
[ 0.290 0.470 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.470 0.490 color rgb <.4,.4,.5> color rgb <.4,.4,.8> ]
[ 0.490 0.680 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.680 0.700 color rgb <.5,.4,.4> color rgb <.8,.4,.4> ]
[ 0.700 0.880 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.880 0.900 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ]
[ 0.900 1.000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
}
turbulence 1
sine_wave
scale .5
}
finish { diffuse 0 ambient 1 }
}
#declare Starfield4 =
texture {
pigment {
granite
color_map {
[ 0.000 0.270 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.270 0.300 color rgb <.5,.5,.4> color rgb <.8,.8,.4> ]
[ 0.300 0.470 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.470 0.500 color rgb <.4,.4,.5> color rgb <.4,.4,.8> ]
[ 0.500 0.670 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.670 0.700 color rgb <.5,.4,.4> color rgb <.8,.4,.4> ]
[ 0.700 0.870 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.870 0.900 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ]
[ 0.900 1.000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
}
turbulence 1
sine_wave
scale .5
}
finish { diffuse 0 ambient 1 }
}
#declare Starfield5 =
texture {
pigment {
granite
color_map {
[ 0.000 0.260 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.260 0.300 color rgb <.5,.5,.4> color rgb <.8,.8,.4> ]
[ 0.300 0.460 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.460 0.500 color rgb <.4,.4,.5> color rgb <.4,.4,.8> ]
[ 0.500 0.660 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.660 0.700 color rgb <.5,.4,.4> color rgb <.8,.4,.4> ]
[ 0.700 0.860 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.860 0.900 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ]
[ 0.900 1.000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
}
turbulence 1
sine_wave
scale .5
}
finish { diffuse 0 ambient 1 }
}
#declare Starfield6 =
texture {
pigment {
granite
color_map {
[ 0.000 0.250 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.250 0.300 color rgb <.5,.5,.4> color rgb <.8,.8,.4> ]
[ 0.300 0.450 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.450 0.500 color rgb <.4,.4,.5> color rgb <.4,.4,.8> ]
[ 0.500 0.650 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.650 0.700 color rgb <.5,.4,.4> color rgb <.8,.4,.4> ]
[ 0.700 0.850 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
[ 0.850 0.900 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ]
[ 0.900 1.000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
}
turbulence 1
sine_wave
scale .5
}
finish { diffuse 0 ambient 1 }
}
#version Stars_Inc_Temp;
#end

View file

@ -0,0 +1,14 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence Of Vision raytracer version 3.1 sample file.
camera {
location <-2.0, 1.75, -5>
right x*1.3333
angle 70
look_at <-0.75, -0.5, 0>
}
light_source { <20, 20, -25> rgb 1 }
plane { y, 0 pigment { Plum }}

View file

@ -0,0 +1,28 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: stdinc.inc
// Last updated: 2001.8.16
// Description: The most commonly used include files.
#ifndef(STDINC_INC_TEMP)
#declare STDINC_INC_TEMP = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including stdinc.inc\n"
#end
#include "colors.inc"
#include "shapes.inc"
#include "transforms.inc"
#include "consts.inc"
#include "functions.inc"
#include "math.inc"
#include "rand.inc"
#version STDINC_INC_TEMP;
#end//arrays.inc

View file

@ -0,0 +1,88 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
#ifndef(Stoneold_Inc_Temp)
#declare Stoneold_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
# debug "including stoneold.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.1
Stone textures by Mike Miller 1992
Backwards-compatibility translation file.
Translates old texture names to new texture names.
Use stones1.inc in the future.
*/
#include "stones1.inc"
#declare Grnt0 = texture { T_Grnt0 }
#declare Grnt1 = texture { T_Grnt1 }
#declare Grnt2 = texture { T_Grnt2 }
#declare Grnt3 = texture { T_Grnt3 }
#declare Grnt4 = texture { T_Grnt4 }
#declare Grnt5 = texture { T_Grnt5 }
#declare Grnt6 = texture { T_Grnt6 }
#declare Grnt7 = texture { T_Grnt7 }
#declare Grnt8 = texture { T_Grnt8 }
#declare Grnt9 = texture { T_Grnt9 }
#declare Grnt10 = texture { T_Grnt10 }
#declare Grnt11 = texture { T_Grnt11 }
#declare Grnt12 = texture { T_Grnt12 }
#declare Grnt13 = texture { T_Grnt13 }
#declare Grnt14 = texture { T_Grnt14 }
#declare Grnt15 = texture { T_Grnt15 }
#declare Grnt16 = texture { T_Grnt16 }
#declare Grnt17 = texture { T_Grnt17 }
#declare Grnt18 = texture { T_Grnt18 }
#declare Grnt19 = texture { T_Grnt19 }
#declare Grnt20 = texture { T_Grnt20 }
#declare Grnt21 = texture { T_Grnt21 }
#declare Grnt22 = texture { T_Grnt22 }
#declare Grnt23 = texture { T_Grnt23 }
#declare Grnt24 = texture { T_Grnt24 }
#declare Grnt25 = texture { T_Grnt25 }
#declare Grnt26 = texture { T_Grnt26 }
#declare Grnt27 = texture { T_Grnt27 }
#declare Grnt28 = texture { T_Grnt28 }
#declare Grnt29 = texture { T_Grnt29 }
#declare Grnt0a = texture { T_Grnt0a }
#declare Grnt1a = texture { T_Grnt1a }
#declare Grnt2a = texture { T_Grnt2a }
#declare Crack1 = texture { T_Crack1 }
#declare Crack2 = texture { T_Crack2 }
#declare Crack3 = texture { T_Crack3 }
#declare Crack4 = texture { T_Crack4 }
#declare Stone1 = texture { T_Stone1 }
#declare Stone2 = texture { T_Stone2 }
#declare Stone3 = texture { T_Stone3 }
#declare Stone4 = texture { T_Stone4 }
#declare Stone5 = texture { T_Stone5 }
#declare Stone6 = texture { T_Stone6 }
#declare Stone7 = texture { T_Stone7 }
#declare Stone8 = texture { T_Stone8 }
#declare Stone9 = texture { T_Stone9 }
#declare Stone10 = texture { T_Stone10 }
#declare Stone11 = texture { T_Stone11 }
#declare Stone12 = texture { T_Stone12 }
#declare Stone13 = texture { T_Stone13 }
#declare Stone14 = texture { T_Stone14 }
#declare Stone15 = texture { T_Stone15 }
#declare Stone16 = texture { T_Stone16 }
#declare Stone17 = texture { T_Stone17 }
#declare Stone18 = texture { T_Stone18 }
#declare Stone19 = texture { T_Stone19 }
#declare Stone20 = texture { T_Stone20 }
#declare Stone21 = texture { T_Stone21 }
#declare Stone22 = texture { T_Stone22 }
#declare Stone23 = texture { T_Stone23 }
#declare Stone24 = texture { T_Stone24 }
#version Stoneold_Inc_Temp;
#end

View file

@ -0,0 +1,25 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
#ifndef(Stones_Inc_Temp)
#declare Stones_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
# debug "including stones.inc\n"
#end
/*
Persistence of Vision Raytracer Version 3.1
Combines stones1.inc and stones2.inc. Use only if
needed, since it will take longer to parse.
*/
#include "stones1.inc"
#include "stones2.inc"
#version Stones_Inc_Temp;
#end

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,890 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: stones2.inc
// Last updated: 2001.7.24
// Description: Stone textures.
#ifndef(Stones2_Inc_Temp)
#declare Stones2_Inc_Temp = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including stones2.inc\n"
#end
/* This file was modified July 2001 to work as it should with POV-Ray 3.5,
all filters being changed to transmits*/
/*
Persistence of Vision Raytracer Version 3.1
T_Stone25 through T_Stone35 created by Dan Farmer, 1995
T_Stone36 through T_Stone43 created by Paul Novak, 1995
T_Stone44 by Dan Farmer 1995
*/
#declare T_Stone25 =
texture {
pigment {
crackle
turbulence 0.3
lambda 2.5
omega 0.75
octaves 5
scale 0.45
rotate <0, 5, 60>
color_map {
[0.02 color rgbt <0.30, 0.60, 0.45, 0.0> ]
[0.06 color rgbt <0.35, 0.55, 0.40, 0.0> ]
[0.10 color rgbt <0.25, 0.25, 0.20, 0.0> ]
[1.00 color rgbt <0.75, 0.75, 0.60, 0.0> ]
}
}
}
texture {
pigment {
crackle
turbulence 0.2
lambda 2.5
omega 0.75
octaves 5
scale 0.65
rotate <0, 45, 60>
color_map {
[0.02 color rgbt <0.30, 0.60, 0.45, 0.95> ]
[0.06 color rgbt <0.35, 0.55, 0.40, 0.75> ]
[0.10 color rgbt <0.25, 0.25, 0.20, 0.65> ]
[1.00 color rgbt <0.75, 0.75, 0.60, 0.60> ]
}
}
}
texture {
pigment {
crackle
turbulence 0.2
lambda 2.5
omega 0.75
octaves 5
scale 0.15
rotate <30, 30, 30>
color_map {
[0.00 color rgbt <0.95, 0.95, 0.95, 0.30> ]
[0.03 color rgbt <0.85, 0.85, 0.85, 0.60> ]
[0.06 color rgbt <0.50, 0.50, 0.50, 0.90> ]
[0.10 color rgbt <1.00, 1.00, 1.00, 1.00> ]
}
}
}
#declare T_Stone26 =
texture {
pigment {
granite
rotate y*90
color_map {
[0.02 color rgbt <0.25, 0.45, 0.60, 0.0> ]
[0.06 color rgbt <0.20, 0.40, 0.55, 0.0> ]
[0.10 color rgbt <0.15, 0.20, 0.25, 0.0> ]
[1.00 color rgbt <0.40, 0.60, 0.75, 0.0> ]
}
frequency 6
rotate <0, 10, 0>
turbulence <0.05, 0.05, 0.05>
octaves 6
omega 0.7
lambda 2
}
}
texture {
pigment {
gradient x
color_map {
[0.00 color Clear ]
[0.10 color rgbt <1.00, 1.00, 1.00, 0.75> ]
[0.15 color rgbt <0.15, 0.25, 0.40, 0.50> ]
[0.20 color rgbt <0.00, 0.05, 0.10, 0.25> ]
[0.25 color rgbt <0.15, 0.25, 0.40, 0.25> ]
[0.30 color rgbt <0.35, 0.55, 0.40, 0.50> ]
[0.35 color rgbt <0.25, 0.25, 0.20, 0.75> ]
[0.35 color Clear ]
}
frequency 3
rotate <1, 10, 45>
rotate x*60
turbulence <0.30, 0.30, 0.30>
octaves 6
omega 0.7
lambda 2.2
}
}
texture {
pigment {
agate
color_map {
[0.00 color Clear ]
[0.10 color rgbt <1.00, 1.00, 1.00, 0.75> ]
[0.15 color rgbt <0.35, 0.55, 0.40, 0.50> ]
[0.20 color rgbt <0.25, 0.25, 0.20, 0.25> ]
[0.25 color rgbt <0.30, 0.60, 0.45, 0.25> ]
[0.30 color rgbt <0.35, 0.55, 0.40, 0.50> ]
[0.35 color rgbt <0.25, 0.25, 0.20, 0.75> ]
[0.35 color Clear ]
}
frequency 3
rotate <2, 10, 75>
rotate x*120
turbulence <0.05, 0.05, 0.05>
octaves 6
omega 0.7
lambda 2
}
}
#declare T_Stone27 =
texture {
pigment {
crackle
turbulence 0.35
lambda 2.5
omega 0.75
octaves 5
scale 0.5
frequency 3
rotate <0, -45, 30>
color_map {
[0.02 color rgbt <0.25, 0.45, 0.60, 0.0> ]
[0.06 color rgbt <0.20, 0.40, 0.55, 0.0> ]
[0.10 color rgbt <0.05, 0.10, 0.15, 0.0> ]
[1.00 color rgbt <0.40, 0.60, 0.75, 0.0> ]
}
}
}
texture {
pigment {
crackle
turbulence 0.1
lambda 2.5
omega 0.75
octaves 5
scale 0.45
frequency 1
phase 0.25
rotate <0, 45, 60>
color_map {
[0.00 color Clear ]
[0.20 color rgbt <1.00, 1.00, 1.00, 0.75> ]
[0.25 color rgbt <0.25, 0.45, 0.40, 0.50> ]
[0.30 color rgbt <0.00, 0.00, 0.00, 0.00> ]
[0.35 color rgbt <0.15, 0.75, 0.60, 0.50> ]
[0.40 color rgbt <0.35, 0.85, 0.40, 0.60> ]
[0.45 color rgbt <0.35, 0.45, 0.20, 0.75> ]
[0.65 color Clear ]
}
}
}
texture {
pigment {
crackle
turbulence 0.35
lambda 2.5
omega 0.75
octaves 5
scale 2
frequency 2
rotate <0, 90, 0>
color_map {
[0.00 color Clear ]
[0.20 color rgbt <1.00, 1.00, 1.00, 0.75> ]
[0.25 color rgbt <0.35, 0.55, 0.40, 0.50> ]
[0.30 color rgbt <0.00, 0.00, 0.00, 0.00> ]
[0.45 color rgbt <0.30, 0.60, 0.45, 0.25> ]
[0.50 color rgbt <0.35, 0.55, 0.40, 0.50> ]
[0.65 color rgbt <0.25, 0.25, 0.20, 0.75> ]
[0.65 color Clear ]
}
}
}
#declare T_Stone28 =
texture {
pigment {
agate
agate_turb 0.75
frequency 6
scale 0.5
rotate <0, -45, 5>
color_map {
[0.02 color rgbt <0.65, 0.45, 0.25, 0.0> ]
[0.06 color rgbt <0.55, 0.40, 0.20, 0.0> ]
[0.10 color rgbt <0.15, 0.10, 0.05, 0.0> ]
[1.00 color rgbt <0.75, 0.60, 0.40, 0.0> ]
}
}
}
texture {
pigment {
crackle
turbulence 0.1
lambda 2.5
omega 0.75
octaves 5
scale 0.75
frequency 1
phase 0.25
rotate <0, 45, 60>
color_map {
[0.00 color Clear ]
[0.25 color rgbt <0.40, 0.25, 0.15, 0.50> ]
[0.30 color rgbt <0.00, 0.00, 0.00, 0.00> ]
[0.35 color rgbt <0.40, 0.25, 0.15, 0.50> ]
[0.40 color rgbt <0.45, 0.55, 0.35, 0.60> ]
[0.65 color Clear ]
}
}
}
texture {
pigment {
crackle
turbulence 0.1
lambda 2.5
omega 0.75
octaves 5
scale 0.45
frequency 2
phase 0.25
rotate <0, 5, 60>
color_map {
[0.00 color Clear ]
[0.25 color rgbt <0.65, 0.25, 0.40, 0.50> ]
[0.30 color rgbt <0.00, 0.00, 0.00, 0.00> ]
[0.45 color rgbt <0.50, 0.60, 0.35, 0.25> ]
[0.50 color rgbt <0.65, 0.25, 0.40, 0.50> ]
[0.65 color Clear ]
}
}
}
#declare T_Stone29 =
texture {
pigment {
gradient x
turbulence 0.75
frequency 6
scale 0.5
rotate <0, -45, 30>
color_map {
[0.02 color rgb <0.65, 0.35, 0.25> ]
[0.06 color rgb <0.55, 0.25, 0.10> ]
[0.10 color rgb <0.45, 0.30, 0.25> ]
[1.00 color rgb <0.65, 0.35, 0.25> ]
}
}
}
texture {
pigment {
crackle
turbulence 0.6
lambda 1.75
omega 0.55
octaves 4
scale 0.45
rotate <0, 5, 60>
color_map {
[0.01 color rgbt <0.00, 0.00, 0.00, 0.00> ]
[0.02 color rgbt <0.40, 0.25, 0.15, 0.20> ]
[0.05 color rgbt <0.40, 0.35, 0.20, 0.40> ]
[0.10 color rgbt <0.45, 0.55, 0.25, 0.60> ]
[0.65 color Clear ]
}
}
}
texture {
pigment {
granite
turbulence 0.1
lambda 2.5
omega 0.75
octaves 5
scale 0.75
frequency 1
phase 0.25
rotate <0, 45, 60>
color_map {
[0.15 color rgbt <0.40, 0.25, 0.15, 0.40> ]
[0.20 color rgbt <0.20, 0.10, 0.00, 0.00> ]
[0.25 color rgbt <0.20, 0.15, 0.15, 0.40> ]
[0.30 color rgbt <0.40, 0.25, 0.15, 0.70> ]
[0.65 color Clear ]
}
}
}
#declare T_Stone30 =
texture {
pigment {
gradient x
turbulence 0.75
frequency 6
scale 0.5
rotate <0, -45, 30>
color_map {
[0.02 color rgbt <0.85, 0.85, 0.45, 0.0> ]
[0.06 color rgbt <0.65, 0.65, 0.40, 0.0> ]
[0.10 color rgbt <0.90, 0.90, 0.65, 0.0> ]
[1.00 color rgbt <0.85, 0.85, 0.45, 0.0> ]
}
}
}
texture {
pigment {
crackle
turbulence 0.3
lambda 2.5
omega 0.75
octaves 5
scale 0.45
frequency 2
phase 0.25
rotate <0, 5, 60>
color_map {
[0.00 color Clear ]
[0.25 color rgbt <0.40, 0.40, 0.15, 0.50> ]
[0.30 color rgbt <0.00, 0.00, 0.00, 0.00> ]
[0.35 color rgbt <0.40, 0.40, 0.20, 0.50> ]
[0.40 color rgbt <0.65, 0.65, 0.30, 0.60> ]
[0.65 color Clear ]
}
}
}
texture {
pigment {
crackle
turbulence 0.1
lambda 2.5
omega 0.75
octaves 5
scale 0.75
frequency 1
phase 0.25
rotate <0, 45, 60>
color_map {
[0.00 color Clear ]
[0.15 color rgbt <0.40, 0.15, 0.45, 0.60> ]
[0.18 color rgbt <0.20, 0.10, 0.00, 0.00> ]
[0.25 color rgbt <0.20, 0.15, 0.45, 0.60> ]
[0.30 color rgbt <0.40, 0.15, 0.45, 0.80> ]
[0.65 color Clear ]
}
}
}
#declare T_Stone31 =
texture {
pigment {
crackle
turbulence 0.3
lambda 2.5
omega 0.75
octaves 5
scale 0.45
rotate <0, 5, 60>
color_map {
[0.00 color Gray90 ]
[0.02 color rgb <0.95, 0.90, 0.85> ]
[0.03 color rgb <0.75, 0.85, 0.80> ]
[0.04 color rgb <0.45, 0.40, 0.50> ]
[0.10 color Gray15 ]
}
}
}
texture {
pigment {
crackle
turbulence 0.2
lambda 2.5
omega 0.75
octaves 5
scale 0.65
rotate <0, 45, 60>
color_map {
[0.00 color Clear ]
[0.02 color rgb <0.95, 0.90, 0.85> ]
[0.03 color rgb <0.75, 0.85, 0.80> ]
[0.04 color rgb <0.45, 0.40, 0.50> ]
[0.10 color Clear ]
}
}
}
#declare T_Stone32 =
texture {
pigment {
crackle
turbulence 0.3
lambda 2.5
omega 0.75
octaves 5
scale 0.45
rotate <0, 5, 60>
color_map {
[0, 1 color rgb <0.9, 0.75, 0.75>
color rgb <0.6, 0.6, 0.6> ]
}
}
}
texture {
pigment {
crackle
turbulence 0.2
lambda 2.5
omega 0.75
octaves 5
scale 0.65
rotate <0, 45, 60>
color_map {
[0.0, 0.9 color rgbt <0.52, 0.39, 0.39, 1.0>
color rgbt <0.52, 0.39, 0.39, 0.5>]
[0.9, 1.0 color rgbt <0.42, 0.14, 0.55, 0.0>
color rgbt <0.42, 0.14, 0.55, 0.0>]
}
}
}
texture {
pigment {
crackle
turbulence 0.2
lambda 2.5
omega 0.75
octaves 5
scale 0.15
rotate <30, 30, 30>
color_map {
[0.00 color rgbt <0.95, 0.95, 0.95, 0.30> ]
[0.03 color rgbt <0.85, 0.85, 0.85, 0.60> ]
[0.06 color rgbt <0.50, 0.50, 0.50, 0.90> ]
[0.10 color rgbt <1.00, 1.00, 1.00, 1.00> ]
}
}
}
#declare T_Stone33 =
texture {
pigment {
crackle
turbulence 0.3
lambda 2.5
omega 0.75
octaves 5
scale 0.45
rotate <0, 5, 60>
color_map {
[0.0, 0.1 color rgb <0.0, 0.0, 0.0>
color rgb <0.9, 0.7, 0.6>]
[0.1, 0.3 color rgb <0.9, 0.7, 0.6>
color rgb <0.9, 0.7, 0.4>]
[0.3, 1.0 color rgb <0.9, 0.7, 0.4>
color rgb <0.7, 0.4, 0.2>]
}
}
}
texture {
pigment {
crackle
turbulence 0.2
lambda 2.5
omega 0.75
octaves 5
scale 0.65
rotate <0, 45, 60>
color_map {
[0.0, 0.2 color rgbt <0.7, 0.4, 0.2, 0.20>
color rgbt <0.9, 0.7, 0.6, 0.30>]
[0.2, 0.3 color rgbt <0.9, 0.7, 0.6, 0.50>
color rgbt <0.9, 0.7, 0.4, 0.70>]
[0.3, 1.0 color rgbt <0.9, 0.7, 0.4, 0.80>
color rgbt <0.7, 0.4, 0.2, 0.80>]
}
}
}
#declare T_Stone34 =
texture {
pigment {
gradient x
turbulence 0.75
frequency 6
scale 0.5
rotate <0, -45, 30>
color_map {
[0.02 color rgbt <0.85, 0.85, 0.85, 0.0> ]
[0.10 color rgbt <1.00, 1.00, 1.00, 0.0> ]
[1.00 color rgbt <0.85, 0.85, 0.85, 0.0> ]
}
}
}
texture {
pigment {
crackle
turbulence 0.3
lambda 2.5
omega 0.75
octaves 5
scale 0.45
frequency 2
phase 0.25
rotate <0, 5, 60>
color_map {
[0.00 color Clear ]
[0.15 color rgbt <0.40, 0.30, 0.30, 0.50> ]
[0.30 color rgbt <0.15, 0.08, 0.02, 0.00> ]
[0.35 color rgbt <0.60, 0.40, 0.35, 0.50> ]
[0.45 color rgbt <0.40, 0.35, 0.30, 0.60> ]
[0.65 color Clear ]
}
}
}
// White marble
#declare T_Stone35 =
texture {
pigment {
gradient x
turbulence 0.75
frequency 6
scale 0.5
rotate <0, -45, 30>
color_map {
[0.02 color rgbt <0.85, 0.85, 0.85, 0.0> ]
[0.10 color rgbt <1.00, 1.00, 1.00, 0.0> ]
[1.00 color rgbt <0.85, 0.85, 0.85, 0.0> ]
}
}
}
texture {
pigment {
crackle
turbulence 0.3
lambda 2.5
omega 0.75
octaves 5
scale 0.45
frequency 2
phase 0.25
rotate <0, 5, 60>
color_map {
[0.00 color Clear ]
[0.15 color rgbt <0.40, 0.30, 0.30, 0.50> ]
[0.30 color rgbt <0.15, 0.08, 0.02, 0.00> ]
[0.35 color rgbt <0.60, 0.40, 0.35, 0.50> ]
[0.45 color rgbt <0.40, 0.35, 0.30, 0.60> ]
[0.65 color Clear ]
}
}
}
// Creamy coffee w/greenish-grey veins & faint avacado swirls
#declare T_Stone36 =
texture {
pigment {
granite
turbulence 0.815
colour_map {
[0.10 colour rgbt <0.43529, 0.49804, 0.32941,0.0>]
[0.20 colour rgbt <0.19608, 0.27843, 0.19608,0.0>]
[0.35 colour rgbt <0.43529, 0.49804, 0.32941,0.0>]
[0.55 colour rgbt <0.45490, 0.44706, 0.20784,0.0>]
[0.75 colour rgbt <0.43529, 0.49804, 0.32941,0.0>]
[0.90 colour rgbt <0.19608, 0.22745, 0.00000,0.0>]
[1.00 colour rgbt <0.43529, 0.49804, 0.32941,0.0>]
}
scale <0.85, 1.5, 0.5>
rotate <10, 0, 40>
}
finish { brilliance 1.825 }
}
texture {
pigment {
granite
turbulence 0.825
colour_map {
[0.18 colour rgbt <0.20784, 0.13333, 0.00000, 0.427>]
[0.35 colour rgbt <0.20784, 0.13333, 0.00000, 0.735>]
[0.45 colour rgbt <0.27059, 0.11373, 0.00000, 0.625>]
[0.90 colour rgbt <0.27059, 0.11373, 0.00000, 0.875>]
[1.00 colour rgbt <0.20784, 0.13333, 0.00000, 0.890>]
}
scale <0.65, 1.18, 0.34>
rotate <5, 10, -55>
}
finish { ambient 0.275 diffuse 0.775 crand 0.01975 }
}
// Olive greens w/lighter swirls & hints of salmon
#declare T_Stone37 =
texture {
pigment {
granite
turbulence 0.9
colour_map {
[0.18 colour rgbt <0.29020, 0.24706, 0.00000,0>]
[0.35 colour rgbt <0.29020, 0.24706, 0.00000,0>]
[0.45 colour rgbt <0.16471, 0.15294, 0.00000,0>]
[0.90 colour rgbt <0.16471, 0.15294, 0.00000,0>]
[1.00 colour rgbt <0.32941, 0.25882, 0.00000,0>]
}
scale <0.825, 1.7, 0.25>
rotate <10,5,40>
}
finish { brilliance 2.5 }
}
texture {
pigment {
granite
turbulence 0.85
colour_map {
[0.05 colour rgbt <0.86275, 0.65490, 0.40392, 0.6250>]
[0.35 colour rgbt <0.48627, 0.16471, 0.00000, 0.8250>]
[0.60 colour rgbt <0.86275, 0.65490, 0.40392, 0.7150>]
[0.85 colour rgbt <0.48627, 0.16471, 0.00000, 0.5450>]
[1.00 colour rgbt <0.52941, 0.34118, 0.17647, 0.8975>]
}
scale <0.85, 1.6, 0.45>
rotate <0,5,-50>
}
finish { ambient 0.275 diffuse 0.6925 crand 0.01975}
}
// Deep rich coffee w/darker veins & lots of creamy swirl
#declare T_Stone38 =
texture {
pigment {
granite
turbulence 1.25
colour_map {
[0.15 colour rgbt<0.72549, 0.73725, 0.54118, 0.0>]
[0.25 colour rgbt<0.22745, 0.14510, 0.00000, 0.0>]
[0.45 colour rgbt<0.72549, 0.73725, 0.54118, 0.0>]
[0.60 colour rgbt<0.22745, 0.14510, 0.00000, 0.0>]
[0.80 colour rgbt<0.22745, 0.14510, 0.00000, 0.0>]
[1.00 colour rgbt<0.60392, 0.61176, 0.46667, 0.0>]
}
scale <0.95, 1.7, 0.39>
rotate <10, 5, 40>
}
finish { brilliance 2.125 }
}
texture {
pigment {
granite
turbulence 0.825
colour_map {
[0.35 colour rgbt <0.56078, 0.54902, 0.42353,0.65>]
[0.65 colour rgbt <0.10196, 0.05882, 0.00000,0.85>]
[1.00 colour rgbt <0.56078, 0.54902, 0.42353,0.90>]
}
scale <0.76, 1.4, 0.4>
rotate <0, 10, -55>
}
finish { ambient 0.4 diffuse 0.575 crand 0.021 }
}
// Light mauve w/large plum swirls
#declare T_Stone39 =
texture {
pigment {
granite
turbulence 0.825
colour_map {
[0.12 colour rgbt <0.78039, 0.54902, 0.46667, 0.0>]
[0.35 colour rgbt <0.78039, 0.54902, 0.46667, 0.0>]
[0.65 colour rgbt <0.49804, 0.30980, 0.30196, 0.0>]
[0.90 colour rgbt <0.49804, 0.30980, 0.30196, 0.0>]
[1.00 colour rgbt <0.35294, 0.09020, 0.00000, 0.0>]
}
}
scale <0.78,1.45, 0.4>
rotate <5,10,-55>
finish { brilliance 1.9275 ambient .3 diffuse .575 crand .0215}
}
// Creamy aqua w/green hi-lites & subtle hints of grey
#declare T_Stone40 =
texture {
pigment {
agate
agate_turb 1.1
colour_map {
[0.10 colour rgbt <0.56078, 0.67451, 0.62353, 0.0>]
[0.35 colour rgbt <0.27843, 0.41569, 0.30196, 0.0>]
[0.55 colour rgbt <0.56078, 0.67451, 0.62353, 0.0>]
[0.85 colour rgbt <0.56078, 0.67451, 0.62353, 0.0>]
[0.95 colour rgbt <0.27843, 0.41569, 0.30196, 0.0>]
[1.00 colour rgbt <0.54118, 0.58039, 0.56078, 0.0>]
}
scale <0.97, 0.97, 0.5>
rotate <0, 5, 40>
}
finish {brilliance 1.25}
}
texture {
pigment {
granite
turbulence 1.25
colour_map {
[0.15 colour rgbt <0.46667, 0.59216, 0.54118, 0.005>]
[0.65 colour rgbt <0.35294, 0.67451, 0.54902, 0.750>]
[0.80 colour rgbt <0.46667, 0.59216, 0.54118, 0.660>]
[1.00 colour rgbt <0.35294, 0.67451, 0.54902, 0.879>]
}
scale <0.85, 1.5, 0.5>
rotate <10, 5, -75>
}
finish { ambient 0.175 diffuse 0.6975 crand 0.025 }
}
// Dark powder blue w/steel blue & grey swirls
#declare T_Stone41 =
texture {
pigment {
marble
turbulence 1.5
omega 0.6235
lambda 2.25
colour_map {
[0.15 colour rgbt <0.03922, 0.20784, 0.52941, 0.0>]
[0.45 colour rgbt <0.03922, 0.20784, 0.52941, 0.0>]
[0.55 colour rgbt <0.22745, 0.23922, 0.42353, 0.0>]
[0.75 colour rgbt <0.20784, 0.30980, 0.54118, 0.0>]
[1.00 colour rgbt <0.20784, 0.30980, 0.54118, 0.0>]
}
rotate <0, 0, 85>
scale <0.75, 1.33, 0.35>
rotate <10, 5, 45>
}
finish { brilliance 1.825 }
}
texture {
pigment {
granite
turbulence 1.15
colour_map {
[0.25 colour rgbt <0.30196, 0.35294, 0.48627, 0.600>]
[0.45 colour rgbt <0.30196, 0.35294, 0.48627, 0.475>]
[0.85 colour rgbt <0.17647, 0.24706, 0.39216, 0.715>]
[1.00 colour rgbt <0.17647, 0.24706, 0.39216, 0.750>]
}
rotate <0,0,45>
scale <0.78, 1.0, 0.4>
rotate <5, 10, -55>
}
finish { ambient 0.225 diffuse 0.75 crand 0.01975}
}
//Brick red w/yellow-green swirls
#declare T_Stone42 =
texture {
pigment {
onion
turbulence 2.1
omega 0.575
colour_map {
[0.15 colour rgbt<0.29020, 0.08235, 0.00000, 0.0>]
[0.35 colour rgbt<0.34118, 0.29020, 0.09020, 0.0>]
[0.65 colour rgbt<0.29020, 0.08235, 0.00000, 0.0>]
[0.85 colour rgbt<0.34118, 0.29020, 0.09020, 0.0>]
[1.00 colour rgbt<0.29020, 0.08235, 0.00000, 0.0>]
}
scale <0.9, 1.6, .45>
rotate <10, 5, 45>
}
finish { brilliance 1.825 }
}
texture {
pigment {
granite
turbulence 0.925
colour_map {
[0.25 colour rgbt<0.42353, 0.37255, 0.05882, 0.45>]
[0.50 colour rgbt<0.18431, 0.01569, 0.00000, 0.55>]
[0.72 colour rgbt<0.42353, 0.37255, 0.05882, 0.55>]
[1.00 colour rgbt<0.18431, 0.01569, 0.00000, 0.65>]
}
rotate <5, 15, 90>
scale <0.78, 1.05, 0.4>
rotate <5, 10, -55>
}
finish { ambient 0.225 diffuse 0.75 crand 0.01975 }
}
// Rusty red w/cream swirls and duck overtones
#declare T_Stone43 =
texture {
pigment {
granite
turbulence 0.815
colour_map {
[0.15 colour rgbt<0.86275, 0.75686, 0.61176, 0.0>]
[0.45 colour rgbt<0.49804, 0.21569, 0.03922, 0.0>]
[0.65 colour rgbt<0.84314, 0.72157, 0.63529, 0.0>]
[0.85 colour rgbt<0.46667, 0.23922, 0.05098, 0.0>]
[1.00 colour rgbt<0.87059, 0.73725, 0.62745, 0.0>]
}
scale <0.87, 1.235, 0.47>
rotate <15, 25, 45>
}
finish {brilliance 2.585}
}
texture {
pigment {
agate
agate_turb 1.275
colour_map {
[0.35 colour rgbt<0.42353, 0.12157, 0.01176, 0.650>]
[0.65 colour rgbt<0.50196, 0.35294, 0.21176, 0.750>]
[1.00 colour rgbt<0.41569, 0.20784, 0.02745, 0.550>]
}
scale <0.69,1.27, 0.35>
rotate <10, 5, -60>
}
finish { ambient 0.225 diffuse 0.6975 crand 0.02175 }
}
// This one is quite different from the rest.
// Its a dark, dull, bumpy rock texture.
#declare T_Stone44 =
texture {
pigment {
granite
color_map {
[0.0 rgb 0.3 ]
[1.0 rgb 0.7 ]
}
scale 0.075
}
normal { granite 0.75 scale 0.075 }
}
texture {
pigment {
wrinkles
turbulence 0.3
scale 0.3
color_map {
[0.0 rgbt< 0.50, 0.25, 0.10, 0.85>]
[1.0 rgbt< 0.65, 0.40, 0.00, 0.65>]
}
}
}
#version Stones2_Inc_Temp;
#end

View file

@ -0,0 +1,86 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: strings.inc
// Last updated: 2001.8.9
// Description: This file contains various macros for manipulating strings.
#ifndef(STRINGS_INC_TEMP)
#declare STRINGS_INC_TEMP = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including strings.inc\n"
#end
//converts a color to a string, with filter and transmit
#macro CRGBFTStr(C, MinLen, Padding)
concat( "color rgbft < ", str(C.red, MinLen, Padding),
", ", str(C.green, MinLen, Padding),
", ", str(C.blue, MinLen, Padding),
", ", str(C.filter, MinLen, Padding),
", ", str(C.transmit, MinLen, Padding), ">")
#end
//converts a color to a string, without filter and transmit
#macro CRGBStr(C, MinLen, Padding)
concat( "color rgb < ", str(C.red, MinLen, Padding),
", ", str(C.green, MinLen, Padding),
", ", str(C.blue, MinLen, Padding), ">")
#end
#macro Parse_String(String)
#fopen FOut "parse_string.tmp" write
#write(FOut,String)
#fclose FOut
#include "parse_string.tmp"
#end
//just a shortcut for using str() with system-defined precision and length.
#macro Str(A)
str(A, 0,-1)
#end
//just a shortcut for using vstr()
//"Str" is with capitalized "S" to match the Str() macro
//above which also has system-defined precision and length.
#macro VStr2D(V)
concat("<", vstr(2, V, ",", 0,-1), ">")
#end
#macro VStr(V)
concat("<", vstr(3, V, ",", 0,-1), ">")
#end
//Another shortcut for using vstr(),
//this one with user specified precision and length.
//"str" is with non-capitalized "s" to match the str() function
//in POV-Ray which also has user-specified precision and length.
#macro Vstr2D(V,L,P)
concat("<", vstr(2, V, ",", L,P), ">")
#end
#macro Vstr(V,L,P)
concat("<", vstr(3, V, ",", L,P), ">")
#end
//Macros used to generate strings with mesh syntax.
//Can be used with the IO features to write a mesh to an external file.
#macro Triangle_Str(A, B, C)
concat("triangle {<", vstr(3, A, ",", 0,-1), ">,<",
vstr(3, B, ",", 0,-1), ">,<",
vstr(3, C, ",", 0,-1), ">}")
#end
#macro Smooth_Triangle_Str(A, NA, B, NB, C, NC)
concat("smooth_triangle {<", vstr(3, A, ",", 0,-1), ">,<",
vstr(3, NA, ",", 0,-1), ">,<",
vstr(3, B, ",", 0,-1), ">,<",
vstr(3, NB, ",", 0,-1), ">,<",
vstr(3, C, ",", 0,-1), ">,<",
vstr(3, NC, ",", 0,-1), ">}")
#end
#version STRINGS_INC_TEMP;
#end//strings.inc

View file

@ -0,0 +1,134 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer Scene Include File
// File: sunpos.inc
// Desc: This macro returns the suns position,
// on a given date, time, and location on earth.
// Date: 15-09-1998
// Updated : 2001-07-27
// Auth: Ingo Janssen
//
#ifndef(SunPos_Inc_Temp)
#declare SunPos_Inc_Temp=version;
#version 3.5;
//
// ======================================================
//
// Assumption: in the scene north is in the +Z direction, south is -Z.
//
// Invoke in your scene:
// light_source {
// SunPos(Year, Month, Day, Hour, Minute, Lstm, LAT, LONG)
// rgb 1
// }
//
// Greenwich, noon on the longest day of 2000 (no daylight saving):
// SunPos(2000, 6, 21, 12, 2, 0, 51.4667, 0.00)
//
// Year: in four digits
// Month: number
// Dat: number
// Time: in 24 hour format
// Lstm: Meridian of your local timezone (+1 hour = +15 deg)
// in degrees (east = positive, west = negative)
// Location on earth:
// LAT: Lattitude in degrees.decimal, northern hemisphere = positive, southern = negative
// LONG: Longitude in degrees.decimal, east = positive, west is negative
//
// The macro returns the position of the sun, but also declares it as the vector SolarPosition.
// Also the found Azimuth (Az) and Altitude (Al) are declared, this can be usefull for
// aligning an object with the sunlight: cylinder{
// <-2,0,0>,<2,0,0>,0.1
// rotate <0, Az-90, Al>
// texture {.. LightRay ..}
// }
//
// ======================================================
//
// Find your local position at http://gnpswww.nima.mil/geonames/GNS/ (Gazetteer search)
//
// Local time(zone) at http://www.hilink.com.au/times/
//
// Equations used here can be found at http://hotel04.ausys.se/pausch/english.htm (Computing rise/set times)
// not only for the sun but also for the moon, planets and other stuff up there.
//
// ======================================================
//
#macro SunPos(Year, Month, Day, Hour, Minute, Lstm, LAT, LONG)
#if (abs(LONG-Lstm)>30)
#debug "\nREMARK: \nLongitude differs by more than 30 degrees from timezone meridian.\n"
#debug concat("Local timezone meridian is:",str(Lstm,5,0),"\n")
#debug concat("Longitude is:",str(LONG,5,0),"\n")
#end
// Calculate universal time (UT)
#local T= Hour+(Minute/60);
#local UT= T-Lstm/15;
#if (0>UT)
#local Day= Day-1;
#local UT= 24+UT;
#end
#if (UT>24)
#local Day= Day+1;
#local UT= UT-24;
#end
// Amount of days to, or from, the year 2000
#local d= 367*Year-int((7*int((Year+int((Month+9))/12)))/4)+int((275*Month)/9)+Day-730530+UT/24;
// Longitude of perihelion (w), eccentricity (e)
#local w= 282.9404+4.70935E-5*d;
#local e= 0.016709-1.151E-9*d;
// Mean anomaly (M), sun's mean longitude (L)
#local M= 356.0470+0.9856002585*d;
#if (0<M<360)
#local M= M-floor(M/360)*360;
#end
#local L= w+M;
#if (0<L<360)
#local L= L-floor(L/360)*360;
#end
// Obliquity of the ecliptic, eccentric anomaly (E)
#local oblecl= 23.4393-3.563E-7*d;
#local E= M+(180/pi)*e*sin(radians(M))*(1+e*cos(radians(M)));
// Sun's rectangular coordinates in the plane of ecliptic (A,B)
#local A= cos(radians(E))-e;
#local B= sin(radians(E))*sqrt(1-e*e);
// Distance (r), true anomaly (V), longitude of the sun (lon)
#local r= sqrt(A*A+B*B);
#local V= degrees(atan2(radians(B),radians(A)));
#local lon= V+w;
#if (0<lon<360)
#local lon= lon-floor(lon/360)*360;
#end
// Calculate declination (Decl) and right ascension (RA)
#local Decl= degrees(asin(sin(radians(oblecl))*sin(radians(lon))));
#local RA= degrees(atan2(sin(radians(lon))*cos(radians(oblecl)),cos(radians(lon))))/15;
// Greenwich meridian siderial time at 00:00 (GMST0),siderial time (SIDTIME), hour angle (HA)
#local GMST0= L/15+12;
#local SIDTIME= GMST0+UT+LONG/15;
#local HA= (SIDTIME-RA)*15;
// This is what we're looking for: Altitude & Azimuth
#declare Al= degrees(asin(sin(radians(LAT))*sin(radians(Decl))+cos(radians(LAT))*cos(radians(Decl))*cos(radians(HA))));
#declare Az= degrees(atan2(sin(radians(HA)),cos(radians(HA))*sin(radians(LAT))-tan(radians(Decl))*cos(radians(LAT))))+180;
#declare SolarPosition=vrotate(<0,0,1000000000>,<-Al,Az,0>);
(SolarPosition)
#end
#version SunPos_Inc_Temp;
#end

View file

@ -0,0 +1,266 @@
#declare Teak_Inc_Temp=version;
/*
Persistence of Vision Raytracer Version 3.1
Teakwood color_map
*/
#declare M_Teak =
color_map {
[0.000000 rgb <0.172549, 0.078431, 0.062745>]
[0.003922 rgb <0.172549, 0.094118, 0.047059>]
[0.007843 rgb <0.172549, 0.094118, 0.062745>]
[0.011765 rgb <0.188235, 0.094118, 0.047059>]
[0.015686 rgb <0.188235, 0.094118, 0.062745>]
[0.019608 rgb <0.188235, 0.109804, 0.047059>]
[0.023529 rgb <0.188235, 0.109804, 0.062745>]
[0.027451 rgb <0.188235, 0.109804, 0.078431>]
[0.031373 rgb <0.203922, 0.094118, 0.031373>]
[0.035294 rgb <0.203922, 0.094118, 0.047059>]
[0.039216 rgb <0.203922, 0.094118, 0.062745>]
[0.043137 rgb <0.203922, 0.094118, 0.078431>]
[0.047059 rgb <0.203922, 0.109804, 0.047059>]
[0.050980 rgb <0.203922, 0.109804, 0.062745>]
[0.054902 rgb <0.203922, 0.109804, 0.078431>]
[0.058824 rgb <0.203922, 0.125490, 0.047059>]
[0.062745 rgb <0.203922, 0.125490, 0.062745>]
[0.066667 rgb <0.203922, 0.125490, 0.078431>]
[0.070588 rgb <0.219608, 0.094118, 0.031373>]
[0.074510 rgb <0.219608, 0.094118, 0.047059>]
[0.078431 rgb <0.219608, 0.094118, 0.062745>]
[0.082353 rgb <0.219608, 0.109804, 0.047059>]
[0.086275 rgb <0.219608, 0.109804, 0.062745>]
[0.090196 rgb <0.219608, 0.109804, 0.078431>]
[0.094118 rgb <0.219608, 0.125490, 0.047059>]
[0.098039 rgb <0.219608, 0.125490, 0.062745>]
[0.101961 rgb <0.219608, 0.125490, 0.078431>]
[0.105882 rgb <0.219608, 0.125490, 0.094118>]
[0.109804 rgb <0.219608, 0.141176, 0.078431>]
[0.113725 rgb <0.219608, 0.141176, 0.094118>]
[0.117647 rgb <0.219608, 0.141176, 0.109804>]
[0.121569 rgb <0.219608, 0.156863, 0.141176>]
[0.125490 rgb <0.219608, 0.172549, 0.141176>]
[0.129412 rgb <0.219608, 0.172549, 0.156863>]
[0.133333 rgb <0.219608, 0.188235, 0.156863>]
[0.137255 rgb <0.235294, 0.094118, 0.047059>]
[0.141176 rgb <0.235294, 0.109804, 0.031373>]
[0.145098 rgb <0.235294, 0.109804, 0.047059>]
[0.149020 rgb <0.235294, 0.109804, 0.062745>]
[0.152941 rgb <0.235294, 0.109804, 0.078431>]
[0.156863 rgb <0.235294, 0.109804, 0.094118>]
[0.160784 rgb <0.235294, 0.125490, 0.047059>]
[0.164706 rgb <0.235294, 0.125490, 0.062745>]
[0.168627 rgb <0.235294, 0.125490, 0.078431>]
[0.172549 rgb <0.235294, 0.125490, 0.094118>]
[0.176471 rgb <0.235294, 0.141176, 0.062745>]
[0.180392 rgb <0.235294, 0.141176, 0.078431>]
[0.184314 rgb <0.235294, 0.141176, 0.094118>]
[0.188235 rgb <0.235294, 0.141176, 0.109804>]
[0.192157 rgb <0.235294, 0.172549, 0.156863>]
[0.196078 rgb <0.250980, 0.109804, 0.031373>]
[0.200000 rgb <0.250980, 0.109804, 0.047059>]
[0.203922 rgb <0.250980, 0.109804, 0.062745>]
[0.207843 rgb <0.250980, 0.109804, 0.078431>]
[0.211765 rgb <0.250980, 0.125490, 0.031373>]
[0.215686 rgb <0.250980, 0.125490, 0.047059>]
[0.219608 rgb <0.250980, 0.125490, 0.062745>]
[0.223529 rgb <0.250980, 0.125490, 0.078431>]
[0.227451 rgb <0.250980, 0.125490, 0.094118>]
[0.231373 rgb <0.250980, 0.141176, 0.047059>]
[0.235294 rgb <0.250980, 0.141176, 0.062745>]
[0.239216 rgb <0.250980, 0.141176, 0.078431>]
[0.243137 rgb <0.250980, 0.141176, 0.094118>]
[0.247059 rgb <0.250980, 0.141176, 0.109804>]
[0.250980 rgb <0.250980, 0.156863, 0.062745>]
[0.254902 rgb <0.250980, 0.156863, 0.078431>]
[0.258824 rgb <0.250980, 0.156863, 0.094118>]
[0.262745 rgb <0.250980, 0.172549, 0.141176>]
[0.266667 rgb <0.250980, 0.188235, 0.172549>]
[0.270588 rgb <0.266667, 0.109804, 0.047059>]
[0.274510 rgb <0.266667, 0.109804, 0.062745>]
[0.278431 rgb <0.266667, 0.109804, 0.078431>]
[0.282353 rgb <0.266667, 0.125490, 0.031373>]
[0.286275 rgb <0.266667, 0.125490, 0.047059>]
[0.290196 rgb <0.266667, 0.125490, 0.062745>]
[0.294118 rgb <0.266667, 0.125490, 0.078431>]
[0.298039 rgb <0.266667, 0.125490, 0.094118>]
[0.301961 rgb <0.266667, 0.141176, 0.047059>]
[0.305882 rgb <0.266667, 0.141176, 0.062745>]
[0.309804 rgb <0.266667, 0.141176, 0.078431>]
[0.313726 rgb <0.266667, 0.141176, 0.094118>]
[0.317647 rgb <0.266667, 0.141176, 0.109804>]
[0.321569 rgb <0.266667, 0.156863, 0.062745>]
[0.325490 rgb <0.266667, 0.156863, 0.078431>]
[0.329412 rgb <0.266667, 0.156863, 0.094118>]
[0.333333 rgb <0.266667, 0.156863, 0.109804>]
[0.337255 rgb <0.266667, 0.156863, 0.125490>]
[0.341176 rgb <0.266667, 0.172549, 0.078431>]
[0.345098 rgb <0.266667, 0.172549, 0.094118>]
[0.349020 rgb <0.266667, 0.188235, 0.141176>]
[0.352941 rgb <0.266667, 0.188235, 0.156863>]
[0.356863 rgb <0.282353, 0.125490, 0.047059>]
[0.360784 rgb <0.282353, 0.125490, 0.062745>]
[0.364706 rgb <0.282353, 0.125490, 0.078431>]
[0.368627 rgb <0.282353, 0.125490, 0.094118>]
[0.372549 rgb <0.282353, 0.125490, 0.109804>]
[0.376471 rgb <0.282353, 0.141176, 0.047059>]
[0.380392 rgb <0.282353, 0.141176, 0.062745>]
[0.384314 rgb <0.282353, 0.141176, 0.078431>]
[0.388235 rgb <0.282353, 0.141176, 0.094118>]
[0.392157 rgb <0.282353, 0.141176, 0.109804>]
[0.396078 rgb <0.282353, 0.141176, 0.141176>]
[0.400000 rgb <0.282353, 0.156863, 0.062745>]
[0.403922 rgb <0.282353, 0.156863, 0.078431>]
[0.407843 rgb <0.282353, 0.156863, 0.094118>]
[0.411765 rgb <0.282353, 0.156863, 0.109804>]
[0.415686 rgb <0.282353, 0.156863, 0.125490>]
[0.419608 rgb <0.282353, 0.172549, 0.062745>]
[0.423529 rgb <0.282353, 0.172549, 0.078431>]
[0.427451 rgb <0.282353, 0.172549, 0.094118>]
[0.431373 rgb <0.282353, 0.172549, 0.109804>]
[0.435294 rgb <0.282353, 0.172549, 0.125490>]
[0.439216 rgb <0.282353, 0.188235, 0.125490>]
[0.443137 rgb <0.282353, 0.188235, 0.141176>]
[0.447059 rgb <0.282353, 0.188235, 0.156863>]
[0.450980 rgb <0.298039, 0.125490, 0.047059>]
[0.454902 rgb <0.298039, 0.125490, 0.062745>]
[0.458824 rgb <0.298039, 0.125490, 0.078431>]
[0.462745 rgb <0.298039, 0.141176, 0.047059>]
[0.466667 rgb <0.298039, 0.141176, 0.062745>]
[0.470588 rgb <0.298039, 0.141176, 0.078431>]
[0.474510 rgb <0.298039, 0.141176, 0.094118>]
[0.478431 rgb <0.298039, 0.141176, 0.109804>]
[0.482353 rgb <0.298039, 0.141176, 0.125490>]
[0.486275 rgb <0.298039, 0.141176, 0.141176>]
[0.490196 rgb <0.298039, 0.156863, 0.062745>]
[0.494118 rgb <0.298039, 0.156863, 0.078431>]
[0.498039 rgb <0.298039, 0.156863, 0.094118>]
[0.501961 rgb <0.298039, 0.156863, 0.109804>]
[0.505882 rgb <0.298039, 0.156863, 0.125490>]
[0.509804 rgb <0.298039, 0.172549, 0.062745>]
[0.513726 rgb <0.298039, 0.172549, 0.078431>]
[0.517647 rgb <0.298039, 0.172549, 0.094118>]
[0.521569 rgb <0.298039, 0.172549, 0.109804>]
[0.525490 rgb <0.298039, 0.172549, 0.125490>]
[0.529412 rgb <0.298039, 0.188235, 0.094118>]
[0.533333 rgb <0.298039, 0.188235, 0.109804>]
[0.537255 rgb <0.298039, 0.188235, 0.125490>]
[0.541176 rgb <0.298039, 0.188235, 0.141176>]
[0.545098 rgb <0.298039, 0.203922, 0.141176>]
[0.549020 rgb <0.298039, 0.203922, 0.156863>]
[0.552941 rgb <0.313726, 0.141176, 0.047059>]
[0.556863 rgb <0.313726, 0.141176, 0.062745>]
[0.560784 rgb <0.313726, 0.141176, 0.078431>]
[0.564706 rgb <0.313726, 0.141176, 0.094118>]
[0.568627 rgb <0.313726, 0.156863, 0.047059>]
[0.572549 rgb <0.313726, 0.156863, 0.062745>]
[0.576471 rgb <0.313726, 0.156863, 0.078431>]
[0.580392 rgb <0.313726, 0.156863, 0.094118>]
[0.584314 rgb <0.313726, 0.156863, 0.109804>]
[0.588235 rgb <0.313726, 0.156863, 0.125490>]
[0.592157 rgb <0.313726, 0.156863, 0.141176>]
[0.596078 rgb <0.313726, 0.172549, 0.062745>]
[0.600000 rgb <0.313726, 0.172549, 0.078431>]
[0.603922 rgb <0.313726, 0.172549, 0.094118>]
[0.607843 rgb <0.313726, 0.172549, 0.109804>]
[0.611765 rgb <0.313726, 0.172549, 0.141176>]
[0.615686 rgb <0.313726, 0.188235, 0.062745>]
[0.619608 rgb <0.313726, 0.188235, 0.094118>]
[0.623529 rgb <0.313726, 0.188235, 0.125490>]
[0.627451 rgb <0.313726, 0.203922, 0.141176>]
[0.631373 rgb <0.329412, 0.141176, 0.062745>]
[0.635294 rgb <0.329412, 0.156863, 0.078431>]
[0.639216 rgb <0.329412, 0.156863, 0.109804>]
[0.643137 rgb <0.329412, 0.172549, 0.062745>]
[0.647059 rgb <0.329412, 0.172549, 0.094118>]
[0.650980 rgb <0.329412, 0.172549, 0.125490>]
[0.654902 rgb <0.329412, 0.188235, 0.078431>]
[0.658824 rgb <0.329412, 0.188235, 0.109804>]
[0.662745 rgb <0.329412, 0.188235, 0.141176>]
[0.666667 rgb <0.329412, 0.203922, 0.094118>]
[0.670588 rgb <0.329412, 0.203922, 0.125490>]
[0.674510 rgb <0.329412, 0.203922, 0.156863>]
[0.678431 rgb <0.329412, 0.219608, 0.141176>]
[0.682353 rgb <0.345098, 0.156863, 0.062745>]
[0.686275 rgb <0.345098, 0.156863, 0.094118>]
[0.690196 rgb <0.345098, 0.172549, 0.078431>]
[0.694118 rgb <0.345098, 0.172549, 0.109804>]
[0.698039 rgb <0.345098, 0.172549, 0.141176>]
[0.701961 rgb <0.345098, 0.188235, 0.094118>]
[0.705882 rgb <0.345098, 0.188235, 0.125490>]
[0.709804 rgb <0.345098, 0.203922, 0.078431>]
[0.713726 rgb <0.345098, 0.203922, 0.109804>]
[0.717647 rgb <0.345098, 0.203922, 0.141176>]
[0.721569 rgb <0.345098, 0.219608, 0.094118>]
[0.725490 rgb <0.345098, 0.219608, 0.156863>]
[0.729412 rgb <0.345098, 0.235294, 0.172549>]
[0.733333 rgb <0.360784, 0.156863, 0.078431>]
[0.737255 rgb <0.360784, 0.172549, 0.062745>]
[0.741176 rgb <0.360784, 0.172549, 0.094118>]
[0.745098 rgb <0.360784, 0.172549, 0.125490>]
[0.749020 rgb <0.360784, 0.172549, 0.156863>]
[0.752941 rgb <0.360784, 0.188235, 0.078431>]
[0.756863 rgb <0.360784, 0.188235, 0.109804>]
[0.760784 rgb <0.360784, 0.188235, 0.141176>]
[0.764706 rgb <0.360784, 0.203922, 0.094118>]
[0.768627 rgb <0.360784, 0.203922, 0.125490>]
[0.772549 rgb <0.360784, 0.219608, 0.109804>]
[0.776471 rgb <0.360784, 0.219608, 0.141176>]
[0.780392 rgb <0.360784, 0.235294, 0.156863>]
[0.784314 rgb <0.376471, 0.172549, 0.078431>]
[0.788235 rgb <0.376471, 0.172549, 0.109804>]
[0.792157 rgb <0.376471, 0.172549, 0.141176>]
[0.796078 rgb <0.376471, 0.188235, 0.094118>]
[0.800000 rgb <0.376471, 0.188235, 0.125490>]
[0.803922 rgb <0.376471, 0.203922, 0.078431>]
[0.807843 rgb <0.376471, 0.203922, 0.109804>]
[0.811765 rgb <0.376471, 0.203922, 0.141176>]
[0.815686 rgb <0.376471, 0.219608, 0.094118>]
[0.819608 rgb <0.376471, 0.219608, 0.125490>]
[0.823529 rgb <0.376471, 0.219608, 0.156863>]
[0.827451 rgb <0.376471, 0.235294, 0.141176>]
[0.831373 rgb <0.392157, 0.172549, 0.062745>]
[0.835294 rgb <0.392157, 0.172549, 0.094118>]
[0.839216 rgb <0.392157, 0.188235, 0.078431>]
[0.843137 rgb <0.392157, 0.188235, 0.109804>]
[0.847059 rgb <0.392157, 0.203922, 0.094118>]
[0.850980 rgb <0.392157, 0.203922, 0.125490>]
[0.854902 rgb <0.392157, 0.203922, 0.156863>]
[0.858824 rgb <0.392157, 0.219608, 0.109804>]
[0.862745 rgb <0.392157, 0.219608, 0.141176>]
[0.866667 rgb <0.392157, 0.235294, 0.125490>]
[0.870588 rgb <0.392157, 0.235294, 0.156863>]
[0.874510 rgb <0.407843, 0.188235, 0.094118>]
[0.878431 rgb <0.407843, 0.188235, 0.125490>]
[0.882353 rgb <0.407843, 0.203922, 0.109804>]
[0.886275 rgb <0.407843, 0.219608, 0.094118>]
[0.890196 rgb <0.407843, 0.219608, 0.125490>]
[0.894118 rgb <0.407843, 0.235294, 0.109804>]
[0.898039 rgb <0.407843, 0.235294, 0.141176>]
[0.901961 rgb <0.407843, 0.250980, 0.125490>]
[0.905882 rgb <0.407843, 0.250980, 0.156863>]
[0.909804 rgb <0.423529, 0.203922, 0.094118>]
[0.913725 rgb <0.423529, 0.203922, 0.125490>]
[0.917647 rgb <0.423529, 0.219608, 0.109804>]
[0.921569 rgb <0.423529, 0.219608, 0.141176>]
[0.925490 rgb <0.423529, 0.235294, 0.125490>]
[0.929412 rgb <0.423529, 0.235294, 0.156863>]
[0.933333 rgb <0.423529, 0.250980, 0.141176>]
[0.937255 rgb <0.423529, 0.298039, 0.203922>]
[0.941176 rgb <0.439216, 0.219608, 0.094118>]
[0.945098 rgb <0.439216, 0.219608, 0.125490>]
[0.949020 rgb <0.439216, 0.235294, 0.109804>]
[0.952941 rgb <0.439216, 0.235294, 0.141176>]
[0.956863 rgb <0.439216, 0.250980, 0.125490>]
[0.960784 rgb <0.439216, 0.250980, 0.156863>]
[0.964706 rgb <0.439216, 0.266667, 0.172549>]
[0.968627 rgb <0.454902, 0.235294, 0.125490>]
[0.972549 rgb <0.454902, 0.250980, 0.141176>]
[0.976471 rgb <0.454902, 0.282353, 0.156863>]
[0.980392 rgb <0.470588, 0.235294, 0.141176>]
[0.984314 rgb <0.470588, 0.250980, 0.125490>]
[0.988235 rgb <0.470588, 0.266667, 0.141176>]
[0.992157 rgb <0.470588, 0.282353, 0.172549>]
[0.996078 rgb <0.486275, 0.282353, 0.203922>]
}
#version Teak_Inc_Temp;

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -0,0 +1,221 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: transforms.inc
// Last updated: 2001.8.9
// Description: Macros for dealing with transforms
#ifndef(TRANSFORMS_INC_TEMP)
#declare TRANSFORMS_INC_TEMP = version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including transforms.inc\n"
#end
#include "math.inc"
// --------------------
// Transformation macros:
// --------------------
// Reorients and deforms object so original x axis points along A, original y along B,
// and original z along C.
#macro Shear_Trans(A, B, C)
transform {
matrix < A.x, A.y, A.z,
B.x, B.y, B.z,
C.x, C.y, C.z,
0, 0, 0>
}
#end
#macro Matrix_Trans(A, B, C, D)
transform {
matrix < A.x, A.y, A.z,
B.x, B.y, B.z,
C.x, C.y, C.z,
D.x, D.y, D.z>
}
#end
// "stretch" along a specific axis
#macro Axial_Scale_Trans(Axis, Amt)
transform {
transform {Point_At_Trans(Axis) inverse}
scale <1,Amt,1>
Point_At_Trans(Axis)
}
#end
// rotate around a specific axis
// Author: Rune S. Johansen
#macro Axis_Rotate_Trans(Axis, Angle)
#local vX = vaxis_rotate(x,Axis,Angle);
#local vY = vaxis_rotate(y,Axis,Angle);
#local vZ = vaxis_rotate(z,Axis,Angle);
transform {
matrix < vX.x,vX.y,vX.z, vY.x,vY.y,vY.z, vZ.x,vZ.y,vZ.z, 0,0,0 >
}
#end
// Rotate around a specific point
#macro Rotate_Around_Trans(Rotation, Point)
transform {
translate -Point
rotate Rotation
translate Point
}
#end
// based on original Reorient() macro by John VanSickle
#macro Reorient_Trans(Axis1, Axis2)
#local vX1 = vnormalize(Axis1);
#local vX2 = vnormalize(Axis2);
#local Y = vcross(vX1, vX2);
#if(vlength(Y) > 0)
#local vY = vnormalize(Y);
#local vZ1 = vnormalize(vcross(vX1, vY));
#local vZ2 = vnormalize(vcross(vX2, vY));
transform {
matrix < vX1.x, vY.x,vZ1.x, vX1.y,vY.y,vZ1.y, vX1.z,vY.z, vZ1.z, 0,0,0 >
matrix < vX2.x,vX2.y,vX2.z, vY.x,vY.y, vY.z, vZ2.x,vZ2.y,vZ2.z, 0,0,0 >
}
#else
#if (vlength(vX1-vX2)=0)
transform {}
#else
#local vZ = VPerp_To_Vector(vX2);
transform { Axis_Rotate_Trans(vZ,180) }
#end
#end
#end
// Similar to Reorient_Trans(), points y axis along Axis.
#macro Point_At_Trans(YAxis)
#local Y = vnormalize(YAxis);
#local X = VPerp_To_Vector(Y);
#local Z = vcross(X, Y);
Shear_Trans(X, Y, Z)
#end
// Calculates a transformation which will center the bounding box of Object
// along specified axis Axis
// Usage:
// object {MyObj
// Center_Trans(MyObj, x) center along x axis
// You can also center along multiple axis:
// Center_Trans(MyObj, x+y) center along x and y axis
#macro Center_Trans(Object, Axis)
#local Mn = min_extent(Object);
#local Mx = max_extent(Object);
transform {translate -Axis*((Mx - Mn)/2 + Mn)}
#end
// Calculates a transformation which will align the bounding box
// of an object to a point. Negative values on Axis will align to
// the sides facing the negative ends of the coordinate system,
// positive values will align to the opposite sides, 0 means
// not to do any alignment on that axis.
// Usage:
// object {MyObj
// Align_Trans(MyObj, x, Pt)
// Align right side of object to be coplanar with Pt
// Align_Trans(MyObj, -y, Pt)
// Align bottom of object to be coplanar with Pt
#macro Align_Trans(Object, Axis, Pt)
#local Mn = min_extent(Object);
#local Mx = max_extent(Object);
transform {
#if(Axis.x < -0.5)
translate x*(Pt - Mn.x)
#else
#if(Axis.x > 0.5)
translate x*(Pt - Mx.x)
#end
#end
#if(Axis.y < -0.5)
translate y*(Pt - Mn.y)
#else
#if(Axis.y > 0.5)
translate y*(Pt - Mx.y)
#end
#end
#if(Axis.z < -0.5)
translate z*(Pt - Mn.z)
#else
#if(Axis.z > 0.5)
translate z*(Pt - Mx.z)
#end
#end
}
#end
// Aligns an object to a spline for a given time value.
// The Z axis of the object will point in the forward direction
// of the spline and the Y axis of the object will point upwards.
//
// usage: object {MyObj Spline_Trans(MySpline, clock, y, 0.1, 0.5)}
//
// Spline: The spline that the object is aligned to.
//
// Time: The time value to feed to the spline, for example clock.
//
// Sky: The vector that is upwards in your scene, usually y.
//
// Foresight: How much in advance the object will turn and bank.
// Values close to 0 will give precise results, while higher
// values give smoother results. It will not affect parsing
// speed, so just find the value that looks best.
//
// Banking: How much the object tilts when turning. Note that the amount
// of tilting is equally much controlled by the ForeSight value.
//
// Author: Rune S. Johansen
#macro Spline_Trans (Spline, Time, Sky, Foresight, Banking)
#local Location = <0,0,0>+Spline(Time);
#local LocationNext = <0,0,0>+Spline(Time+Foresight);
#local LocationPrev = <0,0,0>+Spline(Time-Foresight);
#local Forward = vnormalize(LocationNext-Location);
#local Right = VPerp_To_Plane(Sky,Forward);
#local Up = VPerp_To_Plane(Forward,Right);
#local Matrix = Matrix_Trans(Right,Up,Forward,Location)
#local BankingRotation =
degrees(atan2(
VRotation(
VProject_Plane((LocationNext-Location),Sky),
VProject_Plane((Location-LocationPrev),Sky),
Up
)*Banking
,1
));
transform {
rotate BankingRotation*z
transform Matrix
}
#end
#macro vtransform(vec, trans)
#local fn = function { transform { trans } }
#local result = (fn(vec.x, vec.y, vec.z));
result
#end
#macro vinv_transform(vec, trans)
#local fn = function { transform { trans inverse } }
#local result = (fn(vec.x, vec.y, vec.z));
result
#end
#version TRANSFORMS_INC_TEMP;
#end

View file

@ -0,0 +1,16 @@
Three sample fonts are included in this directory.
TIMROM.TTF is a proportional spaces serif font
CYRVETIC.TTF is a proportional sans-spaces serif font
They were donated to the POV-Team by their creator
Ted Harrison CIS:70220,344 and were built using his
FontLab for Windows by SoftUnion, Ltd. of
St. Petersburg, Russia.
CRYSTAL.TTF is a fixed space programmer's font
donated courtesy of:
Jerry Fitzpatrick
Red Mountain Corporation
redmtn@ix.netcom.com


View file

@ -0,0 +1,266 @@
#declare WhiteAsh_Inc_Temp=version;
/*
Persistence of Vision Raytracer Version 3.1
White Ash wood color_map
*/
#declare M_WhiteAsh =
color_map {
[0.000000 rgb <0.345098, 0.219608, 0.109804>]
[0.003922 rgb <0.345098, 0.219608, 0.156863>]
[0.007843 rgb <0.360784, 0.203922, 0.109804>]
[0.011765 rgb <0.360784, 0.203922, 0.141176>]
[0.015686 rgb <0.360784, 0.219608, 0.125490>]
[0.019608 rgb <0.360784, 0.219608, 0.141176>]
[0.023529 rgb <0.360784, 0.235294, 0.156863>]
[0.027451 rgb <0.360784, 0.235294, 0.156863>]
[0.031373 rgb <0.376471, 0.219608, 0.109804>]
[0.035294 rgb <0.392157, 0.235294, 0.141176>]
[0.039216 rgb <0.392157, 0.235294, 0.156863>]
[0.043137 rgb <0.392157, 0.250980, 0.172549>]
[0.047059 rgb <0.392157, 0.250980, 0.188235>]
[0.050980 rgb <0.392157, 0.266667, 0.219608>]
[0.054902 rgb <0.407843, 0.235294, 0.141176>]
[0.058824 rgb <0.407843, 0.235294, 0.172549>]
[0.062745 rgb <0.407843, 0.250980, 0.156863>]
[0.066667 rgb <0.407843, 0.282353, 0.188235>]
[0.070588 rgb <0.423529, 0.250980, 0.141176>]
[0.074510 rgb <0.423529, 0.266667, 0.156863>]
[0.078431 rgb <0.423529, 0.282353, 0.188235>]
[0.082353 rgb <0.423529, 0.298039, 0.219608>]
[0.086275 rgb <0.439216, 0.282353, 0.172549>]
[0.090196 rgb <0.439216, 0.298039, 0.188235>]
[0.094118 rgb <0.439216, 0.298039, 0.203922>]
[0.098039 rgb <0.439216, 0.298039, 0.219608>]
[0.101961 rgb <0.439216, 0.313726, 0.235294>]
[0.105882 rgb <0.439216, 0.313726, 0.250980>]
[0.109804 rgb <0.454902, 0.298039, 0.172549>]
[0.113725 rgb <0.454902, 0.329412, 0.250980>]
[0.117647 rgb <0.470588, 0.313726, 0.219608>]
[0.121569 rgb <0.470588, 0.329412, 0.235294>]
[0.125490 rgb <0.470588, 0.329412, 0.250980>]
[0.129412 rgb <0.470588, 0.345098, 0.250980>]
[0.133333 rgb <0.486275, 0.345098, 0.266667>]
[0.137255 rgb <0.549020, 0.392157, 0.298039>]
[0.141176 rgb <0.564706, 0.360784, 0.266667>]
[0.145098 rgb <0.580392, 0.298039, 0.188235>]
[0.149020 rgb <0.580392, 0.360784, 0.282353>]
[0.152941 rgb <0.580392, 0.376471, 0.235294>]
[0.156863 rgb <0.580392, 0.392157, 0.313726>]
[0.160784 rgb <0.580392, 0.407843, 0.329412>]
[0.164706 rgb <0.580392, 0.423529, 0.313726>]
[0.168627 rgb <0.596078, 0.345098, 0.172549>]
[0.172549 rgb <0.596078, 0.360784, 0.188235>]
[0.176471 rgb <0.596078, 0.360784, 0.250980>]
[0.180392 rgb <0.596078, 0.376471, 0.203922>]
[0.184314 rgb <0.596078, 0.376471, 0.266667>]
[0.188235 rgb <0.596078, 0.392157, 0.219608>]
[0.192157 rgb <0.596078, 0.392157, 0.250980>]
[0.196078 rgb <0.596078, 0.392157, 0.282353>]
[0.200000 rgb <0.596078, 0.392157, 0.298039>]
[0.203922 rgb <0.596078, 0.423529, 0.266667>]
[0.207843 rgb <0.611765, 0.329412, 0.203922>]
[0.211765 rgb <0.611765, 0.345098, 0.188235>]
[0.215686 rgb <0.611765, 0.345098, 0.219608>]
[0.219608 rgb <0.611765, 0.360784, 0.203922>]
[0.223529 rgb <0.611765, 0.360784, 0.235294>]
[0.227451 rgb <0.611765, 0.360784, 0.266667>]
[0.231373 rgb <0.611765, 0.376471, 0.219608>]
[0.235294 rgb <0.611765, 0.376471, 0.250980>]
[0.239216 rgb <0.611765, 0.376471, 0.282353>]
[0.243137 rgb <0.611765, 0.392157, 0.235294>]
[0.247059 rgb <0.611765, 0.407843, 0.298039>]
[0.250980 rgb <0.611765, 0.407843, 0.345098>]
[0.254902 rgb <0.611765, 0.423529, 0.282353>]
[0.258824 rgb <0.611765, 0.439216, 0.313726>]
[0.262745 rgb <0.627451, 0.360784, 0.188235>]
[0.266667 rgb <0.627451, 0.376471, 0.250980>]
[0.270588 rgb <0.627451, 0.392157, 0.203922>]
[0.274510 rgb <0.627451, 0.407843, 0.266667>]
[0.278431 rgb <0.627451, 0.423529, 0.235294>]
[0.282353 rgb <0.627451, 0.423529, 0.345098>]
[0.286275 rgb <0.627451, 0.439216, 0.392157>]
[0.290196 rgb <0.643137, 0.345098, 0.156863>]
[0.294118 rgb <0.643137, 0.360784, 0.219608>]
[0.298039 rgb <0.643137, 0.392157, 0.235294>]
[0.301961 rgb <0.643137, 0.392157, 0.282353>]
[0.305882 rgb <0.643137, 0.407843, 0.313726>]
[0.309804 rgb <0.643137, 0.423529, 0.298039>]
[0.313726 rgb <0.643137, 0.439216, 0.266667>]
[0.317647 rgb <0.643137, 0.439216, 0.313726>]
[0.321569 rgb <0.658824, 0.360784, 0.188235>]
[0.325490 rgb <0.658824, 0.376471, 0.172549>]
[0.329412 rgb <0.658824, 0.376471, 0.250980>]
[0.333333 rgb <0.658824, 0.392157, 0.203922>]
[0.337255 rgb <0.658824, 0.407843, 0.219608>]
[0.341176 rgb <0.658824, 0.407843, 0.250980>]
[0.345098 rgb <0.658824, 0.439216, 0.345098>]
[0.349020 rgb <0.658824, 0.439216, 0.376471>]
[0.352941 rgb <0.658824, 0.470588, 0.329412>]
[0.356863 rgb <0.658824, 0.470588, 0.376471>]
[0.360784 rgb <0.658824, 0.486275, 0.392157>]
[0.364706 rgb <0.674510, 0.376471, 0.172549>]
[0.368627 rgb <0.674510, 0.376471, 0.235294>]
[0.372549 rgb <0.674510, 0.392157, 0.298039>]
[0.376471 rgb <0.674510, 0.423529, 0.298039>]
[0.380392 rgb <0.674510, 0.439216, 0.250980>]
[0.384314 rgb <0.674510, 0.454902, 0.282353>]
[0.388235 rgb <0.674510, 0.454902, 0.313726>]
[0.392157 rgb <0.674510, 0.486275, 0.360784>]
[0.396078 rgb <0.690196, 0.376471, 0.203922>]
[0.400000 rgb <0.690196, 0.392157, 0.250980>]
[0.403922 rgb <0.690196, 0.407843, 0.188235>]
[0.407843 rgb <0.690196, 0.407843, 0.219608>]
[0.411765 rgb <0.690196, 0.423529, 0.313726>]
[0.415686 rgb <0.690196, 0.439216, 0.188235>]
[0.419608 rgb <0.690196, 0.439216, 0.219608>]
[0.423529 rgb <0.690196, 0.439216, 0.345098>]
[0.427451 rgb <0.690196, 0.454902, 0.250980>]
[0.431373 rgb <0.690196, 0.470588, 0.298039>]
[0.435294 rgb <0.690196, 0.470588, 0.345098>]
[0.439216 rgb <0.690196, 0.470588, 0.376471>]
[0.443137 rgb <0.690196, 0.501961, 0.345098>]
[0.447059 rgb <0.690196, 0.501961, 0.407843>]
[0.450980 rgb <0.690196, 0.517647, 0.423529>]
[0.454902 rgb <0.705882, 0.392157, 0.219608>]
[0.458824 rgb <0.705882, 0.423529, 0.250980>]
[0.462745 rgb <0.705882, 0.423529, 0.282353>]
[0.466667 rgb <0.705882, 0.423529, 0.298039>]
[0.470588 rgb <0.705882, 0.454902, 0.282353>]
[0.474510 rgb <0.705882, 0.454902, 0.313726>]
[0.478431 rgb <0.705882, 0.501961, 0.360784>]
[0.482353 rgb <0.705882, 0.517647, 0.298039>]
[0.486275 rgb <0.705882, 0.517647, 0.392157>]
[0.490196 rgb <0.705882, 0.533333, 0.423529>]
[0.494118 rgb <0.705882, 0.549020, 0.454902>]
[0.498039 rgb <0.721569, 0.407843, 0.188235>]
[0.501961 rgb <0.721569, 0.407843, 0.250980>]
[0.505882 rgb <0.721569, 0.423529, 0.219608>]
[0.509804 rgb <0.721569, 0.439216, 0.188235>]
[0.513726 rgb <0.721569, 0.454902, 0.219608>]
[0.517647 rgb <0.721569, 0.454902, 0.250980>]
[0.521569 rgb <0.721569, 0.454902, 0.345098>]
[0.525490 rgb <0.721569, 0.470588, 0.266667>]
[0.529412 rgb <0.721569, 0.470588, 0.360784>]
[0.533333 rgb <0.721569, 0.486275, 0.298039>]
[0.537255 rgb <0.721569, 0.486275, 0.329412>]
[0.541176 rgb <0.721569, 0.501961, 0.407843>]
[0.545098 rgb <0.721569, 0.501961, 0.439216>]
[0.549020 rgb <0.721569, 0.517647, 0.329412>]
[0.552941 rgb <0.721569, 0.533333, 0.423529>]
[0.556863 rgb <0.737255, 0.423529, 0.266667>]
[0.560784 rgb <0.737255, 0.454902, 0.282353>]
[0.564706 rgb <0.737255, 0.454902, 0.313726>]
[0.568627 rgb <0.737255, 0.470588, 0.235294>]
[0.572549 rgb <0.737255, 0.501961, 0.282353>]
[0.576471 rgb <0.737255, 0.501961, 0.360784>]
[0.580392 rgb <0.737255, 0.533333, 0.360784>]
[0.584314 rgb <0.737255, 0.533333, 0.392157>]
[0.588235 rgb <0.737255, 0.549020, 0.439216>]
[0.592157 rgb <0.752941, 0.423529, 0.219608>]
[0.596078 rgb <0.752941, 0.439216, 0.188235>]
[0.600000 rgb <0.752941, 0.439216, 0.235294>]
[0.603922 rgb <0.752941, 0.439216, 0.266667>]
[0.607843 rgb <0.752941, 0.454902, 0.219608>]
[0.611765 rgb <0.752941, 0.454902, 0.345098>]
[0.615686 rgb <0.752941, 0.470588, 0.250980>]
[0.619608 rgb <0.752941, 0.486275, 0.298039>]
[0.623529 rgb <0.752941, 0.486275, 0.329412>]
[0.627451 rgb <0.752941, 0.501961, 0.313726>]
[0.631373 rgb <0.752941, 0.501961, 0.376471>]
[0.635294 rgb <0.752941, 0.533333, 0.329412>]
[0.639216 rgb <0.752941, 0.549020, 0.423529>]
[0.643137 rgb <0.752941, 0.564706, 0.454902>]
[0.647059 rgb <0.752941, 0.580392, 0.486275>]
[0.650980 rgb <0.768627, 0.454902, 0.298039>]
[0.654902 rgb <0.768627, 0.470588, 0.219608>]
[0.658824 rgb <0.768627, 0.486275, 0.360784>]
[0.662745 rgb <0.768627, 0.501961, 0.266667>]
[0.666667 rgb <0.768627, 0.517647, 0.345098>]
[0.670588 rgb <0.768627, 0.517647, 0.407843>]
[0.674510 rgb <0.768627, 0.533333, 0.376471>]
[0.678431 rgb <0.768627, 0.549020, 0.360784>]
[0.682353 rgb <0.768627, 0.549020, 0.392157>]
[0.686275 rgb <0.768627, 0.549020, 0.454902>]
[0.690196 rgb <0.784314, 0.454902, 0.203922>]
[0.694118 rgb <0.784314, 0.454902, 0.235294>]
[0.698039 rgb <0.784314, 0.470588, 0.250980>]
[0.701961 rgb <0.784314, 0.470588, 0.329412>]
[0.705882 rgb <0.784314, 0.486275, 0.282353>]
[0.709804 rgb <0.784314, 0.517647, 0.282353>]
[0.713726 rgb <0.784314, 0.533333, 0.313726>]
[0.717647 rgb <0.784314, 0.549020, 0.423529>]
[0.721569 rgb <0.784314, 0.564706, 0.454902>]
[0.725490 rgb <0.784314, 0.580392, 0.423529>]
[0.729412 rgb <0.784314, 0.596078, 0.470588>]
[0.733333 rgb <0.800000, 0.486275, 0.219608>]
[0.737255 rgb <0.800000, 0.486275, 0.250980>]
[0.741176 rgb <0.800000, 0.486275, 0.345098>]
[0.745098 rgb <0.800000, 0.501961, 0.329412>]
[0.749020 rgb <0.800000, 0.517647, 0.266667>]
[0.752941 rgb <0.800000, 0.517647, 0.360784>]
[0.756863 rgb <0.800000, 0.517647, 0.392157>]
[0.760784 rgb <0.800000, 0.549020, 0.329412>]
[0.764706 rgb <0.800000, 0.549020, 0.376471>]
[0.768627 rgb <0.800000, 0.564706, 0.360784>]
[0.772549 rgb <0.800000, 0.580392, 0.392157>]
[0.776471 rgb <0.800000, 0.596078, 0.439216>]
[0.780392 rgb <0.815686, 0.470588, 0.266667>]
[0.784314 rgb <0.815686, 0.486275, 0.298039>]
[0.788235 rgb <0.815686, 0.501961, 0.329412>]
[0.792157 rgb <0.815686, 0.517647, 0.298039>]
[0.796078 rgb <0.815686, 0.549020, 0.298039>]
[0.800000 rgb <0.815686, 0.549020, 0.407843>]
[0.803922 rgb <0.815686, 0.564706, 0.423529>]
[0.807843 rgb <0.815686, 0.580392, 0.454902>]
[0.811765 rgb <0.815686, 0.611765, 0.470588>]
[0.815686 rgb <0.815686, 0.627451, 0.486275>]
[0.819608 rgb <0.831373, 0.501961, 0.250980>]
[0.823529 rgb <0.831373, 0.501961, 0.298039>]
[0.827451 rgb <0.831373, 0.517647, 0.266667>]
[0.831373 rgb <0.831373, 0.517647, 0.345098>]
[0.835294 rgb <0.831373, 0.533333, 0.329412>]
[0.839216 rgb <0.831373, 0.549020, 0.360784>]
[0.843137 rgb <0.831373, 0.549020, 0.376471>]
[0.847059 rgb <0.831373, 0.549020, 0.423529>]
[0.850980 rgb <0.831373, 0.564706, 0.329412>]
[0.854902 rgb <0.831373, 0.580392, 0.360784>]
[0.858824 rgb <0.831373, 0.580392, 0.392157>]
[0.862745 rgb <0.831373, 0.596078, 0.407843>]
[0.866667 rgb <0.847059, 0.533333, 0.298039>]
[0.870588 rgb <0.847059, 0.580392, 0.439216>]
[0.874510 rgb <0.847059, 0.596078, 0.392157>]
[0.878431 rgb <0.847059, 0.611765, 0.423529>]
[0.882353 rgb <0.847059, 0.611765, 0.454902>]
[0.886275 rgb <0.847059, 0.611765, 0.486275>]
[0.890196 rgb <0.847059, 0.627451, 0.470588>]
[0.894118 rgb <0.847059, 0.643137, 0.501961>]
[0.898039 rgb <0.862745, 0.533333, 0.266667>]
[0.901961 rgb <0.862745, 0.533333, 0.313726>]
[0.905882 rgb <0.862745, 0.549020, 0.345098>]
[0.909804 rgb <0.862745, 0.564706, 0.313726>]
[0.913725 rgb <0.862745, 0.564706, 0.376471>]
[0.917647 rgb <0.862745, 0.580392, 0.345098>]
[0.921569 rgb <0.862745, 0.580392, 0.407843>]
[0.925490 rgb <0.878431, 0.580392, 0.329412>]
[0.929412 rgb <0.878431, 0.596078, 0.376471>]
[0.933333 rgb <0.878431, 0.596078, 0.423529>]
[0.937255 rgb <0.878431, 0.611765, 0.407843>]
[0.941176 rgb <0.878431, 0.627451, 0.439216>]
[0.945098 rgb <0.878431, 0.627451, 0.470588>]
[0.949020 rgb <0.878431, 0.643137, 0.501961>]
[0.952941 rgb <0.878431, 0.658824, 0.470588>]
[0.956863 rgb <0.894118, 0.580392, 0.376471>]
[0.960784 rgb <0.894118, 0.611765, 0.439216>]
[0.964706 rgb <0.894118, 0.658824, 0.501961>]
[0.968627 rgb <0.909804, 0.596078, 0.376471>]
[0.972549 rgb <0.909804, 0.611765, 0.407843>]
[0.976471 rgb <0.909804, 0.643137, 0.423529>]
[0.980392 rgb <0.909804, 0.643137, 0.454902>]
[0.984314 rgb <0.909804, 0.643137, 0.486275>]
[0.988235 rgb <0.909804, 0.658824, 0.470588>]
[0.992157 rgb <0.925490, 0.627451, 0.376471>]
[0.996078 rgb <0.925490, 0.674510, 0.454902>]
}
#version WhiteAsh_Inc_Temp;

View file

@ -0,0 +1,477 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: woodmaps.inc
// Last updated: 2001.7.24
// Description:
/* Basic wooden colormaps
The "M_WoodxA" color_maps are intended as the 1st layer of multi-layer
textures, but many work well by themselves, as well.
The "M_WoodxB" color_maps contain transparent colors and are intended for
use as top layers.
*/
#ifndef(Woodmaps_Inc_Temp)
#declare Woodmaps_Inc_Temp=version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including woodmaps.inc\n"
#end
#declare M_Wood1A =
color_map {
[0.0, 0.1 color rgb <0.88, 0.60, 0.40>
color rgb <0.88, 0.60, 0.40>]
[0.1, 0.9 color rgb <0.88, 0.60, 0.40>
color rgb <0.60, 0.30, 0.20>]
[0.9, 1.0 color rgb <0.60, 0.30, 0.20>
color rgb <0.60, 0.30, 0.20>]
}
#declare M_Wood1B =
color_map {
[0.0, 0.1 color rgbt <0.55, 0.32, 0.20, 0.100>
color rgbt <0.55, 0.32, 0.20, 0.500>]
[0.1, 0.2 color rgbt <0.55, 0.35, 0.20, 0.650>
color rgbt <0.88, 0.60, 0.40, 0.975>]
[0.2, 0.3 color rgbt <0.88, 0.60, 0.40, 0.975>
color rgbt <0.60, 0.30, 0.20, 1.000>]
[0.3, 0.4 color rgbt <0.60, 0.30, 0.20, 0.100>
color rgbt <0.60, 0.30, 0.20, 0.500>]
[0.4, 0.9 color rgbt <0.60, 0.30, 0.20, 0.650>
color rgbt <0.88, 0.60, 0.40, 0.975>]
[0.9, 1.0 color rgbt <0.88, 0.60, 0.40, 0.975>
color rgbt <0.55, 0.32, 0.20, 1.000>]
}
#declare M_Wood2A =
color_map {
[0.0, 0.1 color rgb <0.35, 0.16, 0.12 >* 0.5
color rgb <0.35, 0.16, 0.12>* 0.5]
[0.1, 0.9 color rgb <0.35, 0.20, 0.16>* 0.5
color rgb <0.46, 0.26, 0.18>* 0.5]
[0.9, 1.0 color rgb <0.46, 0.26, 0.18>* 0.5
color rgb <0.35, 0.16, 0.12>* 0.5]
}
#declare M_Wood2B =
color_map {
[0.0, 0.1 color rgbt <0.50, 0.30, 0.20, 0.100>
color rgbt <0.50, 0.30, 0.20, 0.500>]
[0.1, 0.9 color rgbt <0.50, 0.30, 0.20, 0.650>
color rgbt <0.50, 0.25, 0.15, 0.975>]
[0.9, 1.0 color rgbt <0.50, 0.25, 0.15, 0.975>
color rgbt <0.50, 0.30, 0.20, 0.000>]
}
#declare M_Wood3A =
color_map {
[0.0, 0.1 color rgb <0.75, 0.65, 0.45>
color rgb <0.75, 0.65, 0.45>]
[0.1, 0.9 color rgb <0.75, 0.65, 0.45>
color rgb <0.70, 0.55, 0.40>]
[0.9, 1.0 color rgb <0.70, 0.55, 0.40>
color rgb <0.75, 0.65, 0.45>]
}
#declare M_Wood3B =
color_map {
[0.0, 0.1 color rgbt <0.70, 0.60, 0.40, 0.100>
color rgbt <0.70, 0.60, 0.40, 0.500>]
[0.1, 0.9 color rgbt <0.70, 0.60, 0.40, 0.650>
color rgbt <0.75, 0.70, 0.60, 0.975>]
[0.9, 1.0 color rgbt <0.75, 0.70, 0.60, 0.975>
color rgbt <0.70, 0.60, 0.40, 1.000>]
}
#declare M_Wood4A =
color_map {
[0.0, 0.3 color rgb <0.30, 0.10, 0.15>
color rgb <0.30, 0.15, 0.15>]
[0.3, 0.6 color rgb <0.30, 0.15, 0.15>
color rgb <0.50, 0.20, 0.15>]
[0.6, 1.0 color rgb <0.50, 0.20, 0.15>
color rgb <0.30, 0.10, 0.15>]
}
#declare M_Wood4B =
color_map {
/*
[0.0, 0.3 color rgbt <0.40, 0.18, 0.20, 0.00>
color rgbt <0.20, 0.10, 0.15, 0.20>]
[0.3, 0.4 color rgbt <0.20, 0.10, 0.15, 0.35>
color rgbt <0.10, 0.05, 0.07, 0.50>]
[0.4, 0.6 color rgbt <0.10, 0.05, 0.07, 0.20>
color rgbt <0.20, 0.10, 0.15, 0.35>]
[0.6, 1.0 color rgbt <0.20, 0.10, 0.15, 0.50>
color rgbt <0.40, 0.18, 0.20, 0.00>]
*/
[0.0, 0.3 color rgbt <0.32, 0.15, 0.17, 0.00>
color rgbt <0.32, 0.13, 0.15, 0.20>]
[0.3, 0.4 color rgbt <0.32, 0.13, 0.13, 0.35>
color rgbt <0.52, 0.25, 0.23, 0.40>]
[0.4, 0.6 color rgbt <0.52, 0.25, 0.23, 0.20>
color rgbt <0.32, 0.13, 0.13, 0.35>]
[0.6, 1.0 color rgbt <0.32, 0.13, 0.15, 0.50>
color rgbt <0.32, 0.15, 0.20, 0.00>]
}
#declare M_Wood5A =
color_map {
[0.0, 0.3 color rgb <0.50, 0.35, 0.10>
color rgb <0.50, 0.35, 0.10>]
[0.3, 0.6 color rgb <0.50, 0.35, 0.10>
color rgb <0.60, 0.45, 0.10>]
[0.6, 1.0 color rgb <0.60, 0.45, 0.10>
color rgb <0.50, 0.35, 0.10>]
}
#declare M_Wood5B =
color_map {
[0.0, 0.1 color rgbt <0.40, 0.35, 0.10, 1.00>
color rgbt <0.40, 0.00, 0.10, 0.60>]
[0.1, 0.9 color rgbt <0.40, 0.00, 0.10, 0.75>
color rgbt <0.35, 0.40, 0.15, 0.90>]
[0.9, 1.0 color rgbt <0.35, 0.40, 0.15, 0.90>
color rgbt <0.40, 0.35, 0.10, 1.00>]
}
#declare M_Wood6A =
color_map {
[0.0, 0.3 color rgb <0.25, 0.10, 0.10>
color rgb <0.25, 0.10, 0.10>]
[0.3, 0.6 color rgb <0.25, 0.10, 0.10>
color rgb <0.60, 0.15, 0.10>]
[0.6, 1.0 color rgb <0.60, 0.15, 0.10>
color rgb <0.25, 0.10, 0.10>]
}
#declare M_Wood6B =
color_map {
[0.0, 0.3 color rgbt <0.25, 0.10, 0.10, 0.00>
color rgbt <0.25, 0.10, 0.10, 0.40>]
[0.3, 0.5 color rgbt <0.25, 0.10, 0.10, 0.40>
color rgbt <0.60, 0.15, 0.10, 1.00>]
[0.5, 0.7 color rgbt <0.60, 0.15, 0.10, 1.00>
color rgbt <0.25, 0.10, 0.10, 0.40>]
[0.7, 1.0 color rgbt <0.60, 0.15, 0.10, 0.40>
color rgbt <0.25, 0.10, 0.10, 0.00>]
}
#declare M_Wood7A =
color_map {
[0.0, 0.1 color rgb <0.60, 0.35, 0.20>
color rgb <0.60, 0.35, 0.20>]
[0.1, 0.9 color rgb <0.60, 0.35, 0.20>
color rgb <0.90, 0.65, 0.30>]
[0.9, 1.0 color rgb <0.90, 0.65, 0.30>
color rgb <0.60, 0.35, 0.20>]
}
#declare M_Wood7B =
color_map {
[0.0, 0.1 color rgbt <0.90, 0.65, 0.30, 0.00>
color rgbt <0.90, 0.65, 0.30, 0.30>]
[0.1, 1.0 color rgbt <0.90, 0.65, 0.30, 0.30>
color rgbt <1.00, 1.00, 1.00, 1.00> ]
}
#declare M_Wood8A =
color_map {
[0.0, 0.1 color rgb <0.45, 0.30, 0.15>
color rgb <0.45, 0.30, 0.15>]
[0.1, 0.9 color rgb <0.55, 0.30, 0.15>
color rgb <0.20, 0.15, 0.05>]
[0.9, 1.0 color rgb <0.20, 0.15, 0.05>
color rgb <0.45, 0.30, 0.15>]
}
#declare M_Wood8B =
color_map {
[0.0, 0.5 color rgbt <0.60, 0.35, 0.20, 0.30>
color rgbt <0.60, 0.35, 0.20, 0.80>]
[0.5, 1.0 color rgbt <0.60, 0.35, 0.20, 0.80>
color rgbt <1.00, 1.00, 1.00, 1.00> ]
}
#declare M_Wood9A =
color_map {
[0.0, 0.5 color rgb <1.00, 0.85, 0.50>
color rgb <0.60, 0.40, 0.16>]
[0.5, 0.7 color rgb <0.60, 0.40, 0.16>
color rgb <0.60, 0.40, 0.16>]
[0.7, 1.0 color rgb <0.60, 0.40, 0.16>
color rgb <1.00, 0.85, 0.50>]
}
#declare M_Wood9B =
color_map {
[0.0, 0.5 color rgbt <1.00, 0.70, 0.25, 1.00>
color rgbt <0.50, 0.30, 0.06, 0.40>]
[0.5, 0.7 color rgbt <0.50, 0.30, 0.06, 0.40>
color rgbt <0.50, 0.30, 0.06, 0.30>]
[0.7, 1.0 color rgbt <0.50, 0.30, 0.06, 0.40>
color rgbt <1.00, 0.70, 0.25, 1.00>]
}
#declare M_Wood10A =
color_map {
[0.0, 0.5 color rgb <1.00, 0.85, 0.50>
color rgb <0.90, 0.70, 0.46>]
[0.5, 0.7 color rgb <0.90, 0.70, 0.46>
color rgb <0.90, 0.70, 0.46>]
[0.7, 1.0 color rgb <0.90, 0.70, 0.46>
color rgb <1.00, 0.85, 0.50>]
}
#declare M_Wood10B =
color_map {
[0.0, 0.5 color rgbt <1.00, 0.45, 0.10, 0.80>
color rgbt <0.85, 0.65, 0.40, 0.40>]
[0.5, 0.7 color rgbt <0.85, 0.65, 0.40, 0.40>
color rgbt <0.85, 0.65, 0.40, 0.40>]
[0.7, 1.0 color rgbt <0.85, 0.65, 0.40, 0.40>
color rgbt <1.00, 0.45, 0.10, 0.80>]
}
#declare M_Wood11A =
color_map {
[0.000, 0.222 color rgb <0.80, 0.67, 0.25>
color rgb <0.80, 0.67, 0.25>]
[0.222, 0.342 color rgb <0.80, 0.67, 0.25>
color rgb <0.60, 0.34, 0.04>]
[0.342, 0.393 color rgb <0.60, 0.34, 0.04>
color rgb <0.80, 0.67, 0.25>]
[0.393, 0.709 color rgb <0.80, 0.67, 0.25>
color rgb <0.80, 0.67, 0.25>]
[0.709, 0.821 color rgb <0.80, 0.67, 0.25>
color rgb <0.53, 0.29, 0.02>]
[0.821, 1.000 color rgb <0.53, 0.29, 0.02>
color rgb <0.80, 0.67, 0.25>]
}
#declare M_Wood11B =
color_map {
[0.000, 0.120 color rgbt <1.00, 1.00, 1.00, 1.00>
color rgbt <0.70, 0.41, 0.11, 0.60>]
[0.120, 0.231 color rgbt <0.70, 0.41, 0.11, 0.60>
color rgbt <0.70, 0.46, 0.11, 0.60>]
[0.231, 0.496 color rgbt <0.70, 0.46, 0.11, 0.60>
color rgbt <1.00, 1.00, 1.00, 1.00>]
[0.496, 0.701 color rgbt <1.00, 1.00, 1.00, 1.00>
color rgbt <1.00, 1.00, 1.00, 1.00>]
[0.701, 0.829 color rgbt <1.00, 1.00, 1.00, 1.00>
color rgbt <0.70, 0.46, 0.11, 0.60>]
[0.829, 1.000 color rgbt <0.70, 0.46, 0.11, 0.60>
color rgbt <1.00, 1.00, 1.00, 1.00>]
}
#declare M_Wood12A =
color_map {
[0.000, 0.256 color rgb <0.20, 0.11, 0.07>*1.25
color rgb <0.23, 0.12, 0.09>*1.25]
[0.256, 0.393 color rgb <0.23, 0.12, 0.09>*1.25
color rgb <0.24, 0.13, 0.09>*1.25]
[0.393, 0.581 color rgb <0.24, 0.13, 0.09>*1.25
color rgb <0.20, 0.11, 0.07>*1.25]
[0.581, 0.726 color rgb <0.20, 0.11, 0.07>*1.25
color rgb <0.25, 0.12, 0.10>*1.25]
[0.726, 0.983 color rgb <0.25, 0.12, 0.10>*1.25
color rgb <0.23, 0.12, 0.08>*1.25]
[0.983, 1.000 color rgb <0.23, 0.12, 0.08>*1.25
color rgb <0.20, 0.11, 0.07>*1.25]
}
#declare M_Wood12B =
color_map {
[0.000, 0.139 color rgbt <0.545, 0.349, 0.247, 1.000>
color rgbt <0.450, 0.350, 0.320, 0.800>]
[0.139, 0.148 color rgbt <0.450, 0.350, 0.320, 0.800>
color rgbt <0.450, 0.350, 0.320, 0.800>]
[0.148, 0.287 color rgbt <0.450, 0.350, 0.320, 0.800>
color rgbt <0.545, 0.349, 0.247, 1.000>]
[0.287, 0.443 color rgbt <0.545, 0.349, 0.247, 1.000>
color rgbt <0.545, 0.349, 0.247, 1.000>]
[0.443, 0.626 color rgbt <0.545, 0.349, 0.247, 1.000>
color rgbt <0.450, 0.350, 0.320, 0.800>]
[0.626, 0.635 color rgbt <0.450, 0.350, 0.320, 0.800>
color rgbt <0.450, 0.350, 0.320, 0.800>]
[0.635, 0.843 color rgbt <0.450, 0.350, 0.320, 0.800>
color rgbt <0.545, 0.349, 0.247, 1.000>]
[0.843, 1.000 color rgbt <0.545, 0.349, 0.247, 1.000>
color rgbt <0.545, 0.349, 0.247, 1.000>]
}
// Same as M_Wood7A
#declare M_Wood13A =
color_map {
[0.0, 0.1 color rgb <0.60, 0.35, 0.20>
color rgb <0.60, 0.35, 0.20>]
[0.1, 0.9 color rgb <0.60, 0.35, 0.20>
color rgb <0.90, 0.65, 0.30>]
[0.9, 1.0 color rgb <0.90, 0.65, 0.30>
color rgb <0.60, 0.35, 0.20>]
}
// Same as M_Wood7B
#declare M_Wood13B =
/********
color_map {
[0.0, 0.1 color rgbt <0.90, 0.65, 0.30, 0.00>
color rgbt <0.90, 0.65, 0.30, 0.30>]
[0.1, 1.0 color rgbt <0.90, 0.65, 0.30, 0.30>
color rgbt <1.00, 1.00, 1.00, 1.00> ]
}
********/
color_map {
[0.0, 0.4 color rgbt <1.00, 1.00, 1.00, 1.00>
color rgbt <0.90, 0.65, 0.30, 0.30>]
[0.4, 0.5 color rgbt <0.90, 0.65, 0.30, 0.00>
color rgbt <0.90, 0.65, 0.30, 0.30>]
[0.5, 1.0 color rgbt <0.90, 0.65, 0.30, 0.30>
color rgbt <1.00, 1.00, 1.00, 1.00> ]
}
#declare M_Wood14A =
colour_map {
[0.00 0.10 color rgb < 0.80, 0.232, 0.115 >
color rgb < 0.80, 0.232, 0.115 >]
[0.10 0.90 color rgb < 0.80, 0.232, 0.115 >
color rgb < 0.45, 0.115, 0.060 >]
[0.90 1.0 color rgb < 0.45, 0.115, 0.060 >
color rgb < 0.45, 0.115, 0.060 >]
}
#declare M_Wood14B =
colour_map {
[0.00 0.10 color rgbt < 0.70, 0.232, 0.115, 0.5 >
color rgbt < 0.70, 0.232, 0.115, 0.7 >]
[0.10 0.15 color rgbt < 0.70, 0.232, 0.115, 0.7 >
color rgbt < 0.35, 0.115, 0.060, 0.9 >]
[0.15 0.20 color rgbt < 0.70, 0.232, 0.115, 0.9 >
color rgbt < 0.35, 0.115, 0.060, 0.7 >]
[0.20 1.0 color rgbt < 0.35, 0.115, 0.060, 0.7 >
color rgbt < 0.35, 0.115, 0.060, 0.5 >]
}
#declare M_Wood15A =
colour_map {
[0.00 0.25 color rgb < 0.504, 0.310, 0.078> * 0.7
color rgb < 0.531, 0.325, 0.090> * 0.8 ]
[0.25 0.40 color rgb < 0.531, 0.325, 0.090> * 0.8
color rgb < 0.547, 0.333, 0.090> * 0.5 ]
[0.40 0.50 color rgb < 0.547, 0.333, 0.090> * 0.5
color rgb < 0.504, 0.310, 0.075> * 0.6 ]
[0.50 0.70 color rgb < 0.504, 0.310, 0.075> * 0.6
color rgb < 0.559, 0.322, 0.102> * 0.4 ]
[0.70 0.98 color rgb < 0.559, 0.322, 0.102> * 0.4
color rgb < 0.531, 0.325, 0.086> * 0.4 ]
[0.98 1.00 color rgb < 0.531, 0.325, 0.086> * 0.4
color rgb < 0.504, 0.310, 0.078> * 0.7 ]
}
#declare M_Wood15B =
colour_map {
[0.00 0.25 color rgbt < 0.404, 0.210, 0.078, 0.20>
color rgbt < 0.431, 0.225, 0.090, 0.80>]
[0.25 0.40 color rgbt < 0.431, 0.225, 0.090, 0.80>
color rgbt < 0.447, 0.233, 0.090, 0.20>]
[0.40 0.50 color rgbt < 0.447, 0.233, 0.090, 0.20>
color rgbt < 0.404, 0.210, 0.075, 0.60>]
[0.50 0.70 color rgbt < 0.404, 0.210, 0.075, 0.60>
color rgbt < 0.459, 0.222, 0.102, 0.20>]
[0.70 0.98 color rgbt < 0.459, 0.222, 0.102, 0.20>
color rgbt < 0.431, 0.225, 0.086, 0.40>]
[0.98 1.00 color rgbt < 0.431, 0.225, 0.086, 0.40>
color rgbt < 0.404, 0.210, 0.078, 0.10>]
}
#declare M_Wood16A =
colour_map {
[0.00 0.25 color rgb < 0.504, 0.310, 0.078> * 0.7
color rgb < 0.531, 0.325, 0.090> * 0.8 ]
[0.25 0.40 color rgb < 0.531, 0.325, 0.090> * 0.8
color rgb < 0.547, 0.333, 0.090> * 0.5 ]
[0.40 0.50 color rgb < 0.547, 0.333, 0.090> * 0.5
color rgb < 0.504, 0.310, 0.075> * 0.6 ]
[0.50 0.70 color rgb < 0.504, 0.310, 0.075> * 0.6
color rgb < 0.559, 0.322, 0.102> * 0.4 ]
[0.70 0.98 color rgb < 0.559, 0.322, 0.102> * 0.4
color rgb < 0.531, 0.325, 0.086> * 0.4 ]
[0.98 1.00 color rgb < 0.531, 0.325, 0.086> * 0.4
color rgb < 0.504, 0.310, 0.078> * 0.7 ]
}
#declare M_Wood16B =
colour_map {
[0.00 0.25 color rgbt < 0.404, 0.210, 0.078, 0.30>
color rgbt < 0.431, 0.225, 0.090, 0.60>]
[0.25 0.40 color rgbt < 0.431, 0.225, 0.090, 0.60>
color rgbt < 0.447, 0.233, 0.090, 0.30>]
[0.40 0.50 color rgbt < 0.447, 0.233, 0.090, 0.30>
color rgbt < 0.404, 0.210, 0.075, 0.40>]
[0.50 0.70 color rgbt < 0.404, 0.210, 0.075, 0.40>
color rgbt < 0.459, 0.222, 0.102, 0.20>]
[0.70 0.98 color rgbt < 0.459, 0.222, 0.102, 0.20>
color rgbt < 0.431, 0.225, 0.086, 0.50>]
[0.98 1.00 color rgbt < 0.431, 0.225, 0.086, 0.50>
color rgbt < 0.404, 0.210, 0.078, 0.30>]
}
#declare M_Wood17A =
colour_map {
[0.00 0.25 color rgb < 0.70, 0.40, 0.15> * 0.9
color rgb < 0.75, 0.42, 0.30> * 0.7 ]
[0.25 0.40 color rgb < 0.75, 0.42, 0.25> * 0.7
color rgb < 0.74, 0.43, 0.30> * 0.5 ]
[0.40 0.50 color rgb < 0.74, 0.43, 0.20> * 0.5
color rgb < 0.70, 0.42, 0.15> * 0.3 ]
[0.50 0.70 color rgb < 0.70, 0.42, 0.15> * 0.3
color rgb < 0.64, 0.46, 0.10> * 0.4 ]
[0.70 0.98 color rgb < 0.64, 0.46, 0.10> * 0.4
color rgb < 0.65, 0.42, 0.20> * 0.6 ]
[0.98 1.00 color rgb < 0.65, 0.42, 0.20> * 0.6
color rgb < 0.60, 0.40, 0.15> * 0.9 ]
}
#declare M_Wood17B =
colour_map {
[0.00 0.25 color rgbt < 0.40, 0.20, 0.08, 0.10>
color rgbt < 0.44, 0.23, 0.09, 0.20>]
[0.25 0.40 color rgbt < 0.44, 0.23, 0.09, 0.20>
color rgbt < 0.45, 0.25, 0.09, 0.30>]
[0.40 0.50 color rgbt < 0.45, 0.25, 0.09, 0.30>
color rgbt < 0.40, 0.20, 0.08, 0.60>]
[0.50 0.70 color rgbt < 0.40, 0.20, 0.08, 0.60>
color rgbt < 0.46, 0.23, 0.10, 0.30>]
[0.70 0.98 color rgbt < 0.46, 0.23, 0.10, 0.30>
color rgbt < 0.44, 0.23, 0.09, 0.20>]
[0.98 1.00 color rgbt < 0.44, 0.23, 0.09, 0.20>
color rgbt < 0.40, 0.20, 0.08, 0.10>]
}
#declare M_Wood18A =
colour_map {
[0.00 0.15 color rgb < 1.0, 0.50, 0.00>
color rgb < 1.0, 0.50, 0.00> *0.5 ]
[0.15 0.25 color rgb < 1.0, 0.50, 0.00> *0.5
color rgb < 1.0, 0.45, 0.00> *0.7 ]
[0.25 0.28 color rgb < 1.0, 0.45, 0.00> *0.8
color rgb < 1.0, 0.36, 0.00> *0.3 ]
[0.28 0.40 color rgb < 1.0, 0.36, 0.00> *0.3
color rgb < 1.0, 0.40, 0.00> *0.4 ]
[0.40 0.50 color rgb < 1.0, 0.40, 0.00> *0.4
color rgb < 1.0, 0.40, 0.00> *0.6 ]
[0.50 0.70 color rgb < 1.0, 0.50, 0.00> *0.6
color rgb < 1.0, 0.50, 0.00> *0.7 ]
[0.70 0.98 color rgb < 1.0, 0.45, 0.00> *0.7
color rgb < 1.0, 0.45, 0.00> *0.5 ]
[0.98 1.00 color rgb < 1.0, 0.45, 0.00> *0.5
color rgb < 1.0, 0.50, 0.00> ]
}
#declare M_Wood18B =
colour_map {
[0.00 0.25 color rgbt < 0.50, 0.26, 0.12, 0.30>
color rgbt < 0.54, 0.29, 0.13, 0.40>]
[0.25 0.40 color rgbt < 0.54, 0.29, 0.13, 0.40>
color rgbt < 0.55, 0.28, 0.10, 0.60>]
[0.40 0.50 color rgbt < 0.55, 0.28, 0.10, 0.60>
color rgbt < 0.50, 0.23, 0.15, 1.00>]
[0.50 0.70 color rgbt < 0.50, 0.23, 0.15, 1.00>
color rgbt < 0.56, 0.29, 0.17, 0.60>]
[0.70 0.98 color rgbt < 0.56, 0.29, 0.17, 0.60>
color rgbt < 0.54, 0.29, 0.13, 0.40>]
[0.98 1.00 color rgbt < 0.54, 0.29, 0.13, 0.40>
color rgbt < 0.50, 0.26, 0.12, 0.30>]
}
#declare M_Wood19A =
color_map {
[0.00 color rgb <0.5, 0.25, 0.125>]
[0.40 color rgb <1.0, 0.50, 0.250> ]
[0.60 color rgb <1.0, 0.50, 0.250> ]
[1.00 color rgb <0.5, 0.25, 0.125>]
}
#declare M_Wood19B =
color_map {
[0.00 0.30 color rgb <0.35, 0.175, 0.0875>
color rgb <1.00, 0.500, 0.2500> ]
[0.30 1.00 color rgbf 1 color rgbf 1]
}
#version Woodmaps_Inc_Temp;
#end

View file

@ -0,0 +1,733 @@
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
// Persistence of Vision Ray Tracer version 3.5 Include File
// File: woods.inc
// Last updated: 2001.7.24
// Description:
/* Basic wooden textures
Credits:
Textures T_Wood1 through T_Wood30 by Dan Farmer
Textures T_Wood31 through T_Wood35 contributed by
Paul Novak, 75274.1613@compuserve.com
Notes on layered textures T_Wood1 through T_Wood30:
The pigment definitions:
========================
Declares pigments P_Woodgrain1A through P_Woodgrain19A and
P_Woodgrain1B through P_Woodgrain19B. The only difference between the
"A" designations and the "B" designations is in design. The "A"'s
were designed to generally work better as underlying patterns, using
opaque color_maps, while the "B" pigments were designed to work
better as top layers, with some degree of transparency in their
color_maps.
The pigments with the "A" and "B" designations are combinations that
were designed to work well together, but do not neccessarily have to
be used as pairs.
These pigment definitions do not have colormaps assigned so
that they can mix 'n matched in various combinations by the user when
designing their own colors. In this file, the color_maps are added at
the point of defining the final textures.
The color_map definitions:
==========================
These are declared in the #include file "woodmaps.inc". They are
named M_Wood1A through M_Wood19A and M_Wood1B through M_Wood19B.
There are two types of declarations in woodmaps.inc. The "A" color_maps
are intended as the 1st layer of multi-layer textures, but many work
well by themselves, as well.
The "B" color_maps contain transparent colors and are intended for
use as top layers to influence the "A" maps.
The wood textures
=================
Here the various P_WoodGrainx textures are combined with color_maps to
create textures named T_Wood1 through T_Wood30.
General
=======
Wood textures are designed with the major axis of the woodgrain
"cylinder" aligned along the Z axis. With the exception of the few
of the textures below that have a small amount of x-axis rotation
built-in, the textures below will exhibit a very straight grain
pattern unless you apply a small amount of x-axis rotation to them
(generally 2 to 4 degrees seems to work well).
*/
#ifndef(Woods_Inc_Temp)
#declare Woods_Inc_Temp=version;
#version 3.5;
#ifdef(View_POV_Include_Stack)
#debug "including woods.inc\n"
#end
#include "woodmaps.inc"
#declare P_WoodGrain1A =
pigment {
wood
turbulence 0.04
octaves 3
scale <0.05, .05, 1>
}
#declare P_WoodGrain1B =
pigment {
wood
turbulence <0.1, 0.5, 1>
octaves 5
lambda 3.25
scale <0.15, .5, 1>
rotate <5, 10, 5>
translate -x*2
}
#declare P_WoodGrain2A =
pigment {
wood
turbulence 0.04
octaves 3
scale <0.15, .15, 1>
}
#declare P_WoodGrain2B =
pigment {
wood
turbulence <0.1, 0.35, 0.1>
octaves 5
lambda 3.25
scale <0.25, .25, 1>
rotate <5, 10, 5>
translate -x*2
}
#declare P_WoodGrain3A =
pigment {
wood
turbulence 0.04
octaves 3
scale <0.05, .05, 1>
rotate <2,2,0>
}
#declare P_WoodGrain3B =
pigment {
wood
turbulence <0.1, 0.5, 1>
octaves 5
lambda 3.25
scale <0.15, .5, 1>
rotate <5, 10, 5>
translate -x*2
}
#declare P_WoodGrain4A =
pigment {
wood
turbulence 0.04
octaves 4
omega 1.25
scale <0.15, .15, 1>
}
#declare P_WoodGrain4B =
pigment {
bozo
turbulence <0.03, 0.03, 0.1>
octaves 5
lambda 3.25
scale <0.025, .025, 1.0>
}
#declare P_WoodGrain5A =
pigment {
wood
turbulence <0.04, 0.04, 0.1>
octaves 4
omega 1.25
scale <0.15, .15, 1>
}
#declare P_WoodGrain5B =
pigment {
wood
turbulence <0.025, 0.025, 0.1>
octaves 4
omega 1.3
scale <0.30, .20, 1>
translate <0.1, 0.1, 0.20>
}
#declare P_WoodGrain6A =
pigment {
wood
turbulence <0.05, 0.08, 1>
octaves 4
scale <0.15, .15, 1>
translate -x*100
}
#declare P_WoodGrain6B =
pigment {
wood
turbulence <0.05, 0.05, 0>
octaves 4
omega 0.95
scale <0.20, 0.20, 1>
rotate x*20
}
#declare P_WoodGrain7A =
pigment {
wood
turbulence <0.05, 0.08, 1000>
octaves 4
scale <0.15, .15, 1>
}
#declare P_WoodGrain7B =
pigment {
bozo
scale <0.01, 0.01, 100000>
}
#declare P_WoodGrain8A =
pigment {
wood
turbulence 0.04
octaves 3
scale <0.05, .05, 1>
}
#declare P_WoodGrain8B =
pigment {
wood
turbulence <0.04, 0.04, 1>
octaves 4
scale <0.05, 0.05, 1> * 0.66
}
#declare P_WoodGrain9A =
pigment {
wood
turbulence 0.1
octaves 4
lambda 3
scale 0.2
rotate <0.125, 0.125, 0>
}
#declare P_WoodGrain9B =
pigment {
wood
turbulence 0.1
octaves 4
lambda 3.5
scale 0.2
rotate <0.125, 0.125, 0>
translate <0.015, 0.015, 0.015>
}
#declare P_WoodGrain10A =
pigment {
wood
turbulence 0.02
octaves 4
lambda 3
scale 0.175
rotate <2, 2, 0>
}
#declare P_WoodGrain10B =
pigment {
wood
turbulence 0.02
octaves 4
lambda 2.8
scale 0.2
rotate <2, 2, 0>
translate <0.0175, 0.0175, 0.0175>
}
#declare P_WoodGrain11A =
pigment {
wood
turbulence 0.02
scale 0.1
translate <10, 0, 0>
}
#declare P_WoodGrain11B =
pigment {
wood
turbulence 0.01
scale 0.5
translate <10, 0, 0>
}
#declare P_WoodGrain12A =
pigment {
bozo
turbulence 0.04
lambda 2.5
omega 0.1
octaves 7
scale <0.5, 0.05, 0.05>
}
#declare P_WoodGrain12B =
pigment {
wood
turbulence <0.1, 0.04, 1>
scale <0.15, 0.5, 1>
// translate <10, 0, 0>
rotate x*2
}
#declare P_WoodGrain13A =
pigment {
wood
turbulence 0.02
scale 0.1
translate <10, 0, 0>
}
#declare P_WoodGrain13B =
pigment {
wood
turbulence 0.01
scale 0.05
// translate <10, 0, 0>
}
#declare P_WoodGrain14A =
pigment {
wood
colour_map { M_Wood14A }
turbulence 0.065
octaves 2
scale <0.15, .15, 1>
translate < -1 0 0 >
rotate <-3, -3, 0>
}
#declare P_WoodGrain14B=
pigment {
wood
colour_map { M_Wood14B }
turbulence <0, 0.1, 0>
lambda 2.75
omega 1.15
octaves 4
scale <5, 0.075, 1>
rotate x*90
}
#declare P_WoodGrain15A =
pigment {
bozo
colour_map { M_Wood15A }
turbulence 0.04
scale <0.05 0.05 1>
}
#declare P_WoodGrain15B =
pigment {
wood
colour_map { M_Wood15B }
scale <0.20 0.20 1>
turbulence 0.04
rotate <-2, 2, 0>
}
#declare P_WoodGrain16A =
pigment {
bozo
colour_map { M_Wood16A }
turbulence 0.04
scale <0.02 0.02 1>
}
#declare P_WoodGrain16B =
pigment {
wood
colour_map { M_Wood16B }
scale <0.075 0.075 1>
turbulence 0.035
rotate <-2, 2, 0>
}
#declare P_WoodGrain17A =
pigment {
wood
colour_map { M_Wood17A }
turbulence 0.04
omega 0.4
scale <0.1 0.1 1>
rotate -x*4
}
#declare P_WoodGrain17B =
pigment {
wood
colour_map { M_Wood17B }
turbulence 0.05
omega 0.65
scale <0.2 0.2 1>
rotate -x*2
}
#declare P_WoodGrain18A =
pigment {
wood
colour_map { M_Wood18A }
turbulence 0.02
octaves 4
lambda 4
// scale 0.3
scale 0.1
rotate <2, 0, 0>
}
#declare P_WoodGrain18B =
pigment {
wood
colour_map { M_Wood18B }
turbulence 0.02
octaves 6
lambda 2.8
omega 0.6
// scale 0.1
scale 0.05
rotate <2, 0, 0>
}
#declare P_WoodGrain19A =
pigment {
wood
scale <0.075, 0.075, 1>
turbulence 0.065
omega 0.45
lambda 2.3
color_map { M_Wood19A }
rotate x*4
}
#declare P_WoodGrain19B =
pigment {
bozo
color_map { M_Wood19B }
scale <0.013, 0.013, 0.75>
}
// Natural oak (light)
#declare T_Wood1 =
texture { pigment { P_WoodGrain1A color_map { M_Wood1A }}}
texture { pigment { P_WoodGrain1B color_map { M_Wood1B }}}
// Dark brown
#declare T_Wood2 =
texture { pigment { P_WoodGrain2A color_map { M_Wood2A }}}
texture { pigment { P_WoodGrain2B color_map { M_Wood2B }}}
// Bleached oak (white)
#declare T_Wood3 =
texture { pigment { P_WoodGrain3A color_map { M_Wood3A }}}
texture { pigment { P_WoodGrain3B color_map { M_Wood3B }}}
// Mahogany (purplish-red)
#declare T_Wood4 =
texture { pigment { P_WoodGrain4A color_map { M_Wood4A }}}
texture { pigment { P_WoodGrain4B color_map { M_Wood4B }}}
// Dark yellow with reddish overgrain
#declare T_Wood5 =
texture { pigment { P_WoodGrain5A color_map { M_Wood5A }}}
texture { pigment { P_WoodGrain5B color_map { M_Wood5B }}}
// Cocabola (red)
#declare T_Wood6 =
texture { pigment { P_WoodGrain6A color_map { M_Wood6A }}}
texture { pigment { P_WoodGrain6B color_map { M_Wood6B }}}
// Yellow pine (ragged grain)
#declare T_Wood7 =
texture { pigment { P_WoodGrain7A color_map { M_Wood7A }}}
texture { pigment { P_WoodGrain7B color_map { M_Wood7B }}}
// Dark brown. Walnut?
#declare T_Wood8 =
texture { pigment { P_WoodGrain8A color_map { M_Wood8A }}}
texture { pigment { P_WoodGrain8B color_map { M_Wood8B }}}
// Yellowish-brown burl (heavily turbulated)
#declare T_Wood9 =
texture { pigment { P_WoodGrain9A color_map { M_Wood9A }}}
texture { pigment { P_WoodGrain9B color_map { M_Wood9B }}}
// Soft pine (light yellow, smooth grain)
#declare T_Wood10 =
texture { pigment{ P_WoodGrain10A color_map { M_Wood10A }}}
texture { pigment{ P_WoodGrain10B color_map { M_Wood10B }}}
// Spruce (yellowish, very straight, fine grain)
#declare T_Wood11 =
texture { pigment{ P_WoodGrain11A color_map { M_Wood11A }}}
texture { pigment{ P_WoodGrain11B color_map { M_Wood11B }}}
// Another very dark brown. Walnut-stained pine, perhaps?
#declare T_Wood12 =
texture { pigment{ P_WoodGrain12A color_map { M_Wood12A }}}
texture { pigment{ P_WoodGrain12B color_map { M_Wood12B }}}
// Very straight grained, whitish
#declare T_Wood13 =
texture { pigment{ P_WoodGrain13A color_map { M_Wood13A }}}
texture { pigment{ P_WoodGrain13B color_map { M_Wood13B }}}
// Red, rough grain
#declare T_Wood14 =
texture { pigment{ P_WoodGrain14A color_map { M_Wood14A }}}
texture { pigment{ P_WoodGrain14B color_map { M_Wood14B }}}
// Medium brown
#declare T_Wood15 =
texture { pigment{ P_WoodGrain15A color_map { M_Wood15A }}}
texture { pigment{ P_WoodGrain15B color_map { M_Wood15B }}}
// Medium brown
#declare T_Wood16 =
texture { pigment{ P_WoodGrain16A color_map { M_Wood16A }}}
texture { pigment{ P_WoodGrain16B color_map { M_Wood16B }}}
// Medium brown
#declare T_Wood17 =
texture { pigment{ P_WoodGrain17A color_map { M_Wood17A }}}
texture { pigment{ P_WoodGrain17B color_map { M_Wood17B }}}
// Orange
#declare T_Wood18 =
texture { pigment{ P_WoodGrain18A color_map { M_Wood18A }}}
texture { pigment{ P_WoodGrain18B color_map { M_Wood18B }}}
// Golden Oak.
// M_Woods 1,3,7,8,10,14,15,17,18,19 work well, also.
#declare T_Wood19 =
texture { pigment{ P_WoodGrain19A color_map { M_Wood19A }}}
texture { pigment{ P_WoodGrain19B color_map { M_Wood19B }}}
#declare T_Wood20 =
texture { pigment{ P_WoodGrain19A color_map { M_Wood19A }}}
texture { pigment{ P_WoodGrain19B color_map { M_Wood19B }}}
#declare T_Wood21 =
texture { pigment{ P_WoodGrain1A color_map { M_Wood11A }}}
texture { pigment{ P_WoodGrain1B color_map { M_Wood11B }}}
#declare T_Wood22 =
texture { pigment{ P_WoodGrain1A color_map { M_Wood12A }}}
texture { pigment{ P_WoodGrain1B color_map { M_Wood12B }}}
#declare T_Wood23 =
texture { pigment{ P_WoodGrain1A color_map { M_Wood13A }}}
texture { pigment{ P_WoodGrain1B color_map { M_Wood13B }}}
#declare T_Wood24 =
texture { pigment{ P_WoodGrain1A color_map { M_Wood14A }}}
texture { pigment{ P_WoodGrain1B color_map { M_Wood14B }}}
#declare T_Wood25 =
texture { pigment{ P_WoodGrain1A color_map { M_Wood15A }}}
texture { pigment{ P_WoodGrain1B color_map { M_Wood15B }}}
#declare T_Wood26 =
texture { pigment{ P_WoodGrain1A color_map { M_Wood16A }}}
texture { pigment{ P_WoodGrain1B color_map { M_Wood16B }}}
#declare T_Wood27 =
texture { pigment{ P_WoodGrain1A color_map { M_Wood17A }}}
texture { pigment{ P_WoodGrain1B color_map { M_Wood17B }}}
#declare T_Wood28 =
texture { pigment{ P_WoodGrain1A color_map { M_Wood18A }}}
texture { pigment{ P_WoodGrain1B color_map { M_Wood18B }}}
#declare T_Wood29 =
texture { pigment{ P_WoodGrain1A color_map { M_Wood19A }}}
texture { pigment{ P_WoodGrain1B color_map { M_Wood19B }}}
#declare T_Wood30 =
texture { pigment{ P_WoodGrain1A color_map { M_Wood1A }}}
texture { pigment{ P_WoodGrain1B color_map { M_Wood1B }}}
// A light tan wood - heavily grained (variable coloration)
#declare T_Wood31=
texture {
pigment {
wood
turbulence 0.045
scale 0.125
color_map {
[0.10 color rgbt <0.49020, 0.22353, 0.00000, 0.00>]
[0.16 color rgbt <0.71863, 0.69412, 0.46275, 0.00>]
[0.20 color rgbt <0.49020, 0.22353, 0.00000, 0.00>]
[0.25 color rgbt <0.76863, 0.69412, 0.46275, 0.00>]
[0.32 color rgbt <0.44020, 0.22353, 0.00000, 0.00>]
[0.37 color rgbt <0.74863, 0.69412, 0.46275, 0.00>]
[0.40 color rgbt <0.49020, 0.20353, 0.00000, 0.00>]
[0.45 color rgbt <0.76863, 0.66412, 0.48275, 0.00>]
[0.51 color rgbt <0.49020, 0.22353, 0.00000, 0.00>]
[0.55 color rgbt <0.76863, 0.67059, 0.37255, 0.00>]
[0.61 color rgbt <0.49020, 0.25353, 0.00000, 0.00>]
[0.65 color rgbt <0.76863, 0.67059, 0.37255, 0.00>]
[0.70 color rgbt <0.49020, 0.22353, 0.00000, 0.00>]
[0.75 color rgbt <0.76863, 0.63059, 0.37255, 0.00>]
[0.82 color rgbt <0.49020, 0.22353, 0.00000, 0.00>]
[0.88 color rgbt <0.77863, 0.67059, 0.37255, 0.00>]
[0.91 color rgbt <0.49020, 0.22353, 0.00000, 0.00>]
[0.95 color rgbt <0.79863, 0.67059, 0.39550, 0.00>]
[1.00 color rgbt <0.48020, 0.22353, 0.00000, 0.00>]
}
}
}
//A rich dark reddish wood, like rosewood, with smooth-flowing grain
#declare T_Wood32=
texture {
pigment {
wood turbulence 0.04
scale 0.15
color_map {
[0.15 color rgbt <0.38039, 0.14902, 0.0, 0.0>]
[0.25 color rgbt <0.23539, 0.00000, 0.0, 0.0>]
[0.35 color rgbt <0.38139, 0.14912, 0.0, 0.0>]
[0.45 color rgbt <0.23549, 0.00000, 0.0, 0.0>]
[0.55 color rgbt <0.38139, 0.14902, 0.0, 0.0>]
[0.65 color rgbt <0.23559, 0.00000, 0.0, 0.0>]
[0.75 color rgbt <0.38139, 0.14922, 0.0, 0.0>]
[0.85 color rgbt <0.23549, 0.00000, 0.0, 0.0>]
[0.95 color rgbt <0.38039, 0.14902, 0.0, 0.0>]
[0.90 color rgbt <0.23539, 0.00000, 0.0, 0.0>]
[1.00 color rgbt <0.38039, 0.14932, 0.0, 0.0>]
}
}
}
// Similar to T_WoodB, but brighter
#declare T_Wood33=
texture {
pigment {
wood turbulence 0.0425
scale 0.2
color_map {
[0.05 color rgbt <0.55294, 0.21176, 0.00000, 0.0>]
[0.15 color rgbt <0.32549, 0.13725, 0.00000, 0.0>]
[0.25 color rgbt <0.55294, 0.21176, 0.00000, 0.0>]
[0.35 color rgbt <0.32549, 0.11765, 0.00000, 0.0>]
[0.48 color rgbt <0.55294, 0.21176, 0.00000, 0.0>]
[0.55 color rgbt <0.29412, 0.13725, 0.01176, 0.0>]
[0.65 color rgbt <0.55294, 0.21176, 0.00000, 0.0>]
[0.78 color rgbt <0.32549, 0.13725, 0.00000, 0.0>]
[0.85 color rgbt <0.55294, 0.21176, 0.00000, 0.0>]
[0.96 color rgbt <0.28627, 0.13725, 0.00000, 0.0>]
[1.00 color rgbt <0.54510, 0.17647, 0.03529, 0.0>]
}
translate <.015, 0, 0>
}
}
// Reddish-orange, large, smooth grain.
#declare T_Wood34 =
texture { T_Wood32 } // opaque under-layer
texture {
pigment {
onion
turbulence 0.2125
colour_map {
[0.225 colour rgbt <1.000000, 0.53333, 0.11767, 0.4875>]
[0.350 colour rgbt <0.662750, 0.28617, 0.00001, 0.7250>]
[0.500 colour rgbt <1.000100, 0.53333, 0.11765, 0.5745>]
[0.625 colour rgbt <0.662775, 0.28627, 0.00005, 0.6875>]
[0.750 colour rgbt <1.000200, 0.53333, 0.11755, 0.5275>]
[0.875 colour rgbt <0.662755, 0.28629, 0.00001, 0.3795>]
[1.000 colour rgbt <1.000000, 0.53333, 0.11665, 0.6165>]
}
scale <0.225, 0.20, 1.15>
}
}
// Orangish, with a grain more like a veneer than a plank
#declare T_Wood35=
texture {
pigment {
wood
turbulence 0.03725
omega 0.65725
lambda 2.425
color_map {
[0.250 color rgbt <1.00000, 0.53373, 0.11665, 0.000>]
[0.350 color rgbt <0.66275, 0.28607, 0.00000, 0.000>]
[0.525 color rgbt <1.00000, 0.53363, 0.11715, 0.000>]
[0.600 color rgbt <0.66475, 0.28647, 0.00000, 0.000>]
[0.750 color rgbt <1.00000, 0.53353, 0.11565, 0.000>]
[0.850 color rgbt <0.66275, 0.28667, 0.00000, 0.000>]
[1.000 color rgbt <1.00000, 0.53143, 0.11795, 0.000>]
}
scale <0.25, 0.225, 1.0>
}
}
texture {
pigment {
wood
scale 1.01275
turbulence 0.0435
omega 0.65
lambda 3.15
color_map {
[0.200 color rgbt <0.56695, 0.17347, 0.00000, 0.8250>]
[0.350 color rgbt <0.96471, 0.54510, 0.22753, 0.7710>]
[0.400 color rgbt <0.56341, 0.17547, 0.00000, 0.9150>]
[0.615 color rgbt <0.96472, 0.54510, 0.22553, 0.7590>]
[0.700 color rgbt <0.56671, 0.17687, 0.00000, 0.7920>]
[0.850 color rgbt <0.96485, 0.54510, 0.22453, 0.8975>]
[1.000 color rgbt <0.56478, 0.17247, 0.00000, 0.9750>]
}
scale <0.225, 0.2725, 1.0>
translate <-0.35, 0.095, 1.25>
}
}
#version Woods_Inc_Temp;
#end

View file

@ -0,0 +1,24 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
Fatal_Error_Command=command /C type fatal.out>>allscene.err
Fatal_File=on
-P +b100 +X100 +a0.05 +r4 -j
+mb1
res120
-d +v
-oallscene\
Pre_Scene_Command=exists %p%s.flc
Pre_Scene_Return=-q
Output_to_File=On
Pre_Scene_Command=exists %p%s.flc ;;If myfile.flc already exists
Pre_Scene_Return=-q ;; skip entire scene
Pre_Frame_Command=pkzip -vb %p%s %o ;;Test if myfile.tga in myfile.zip
Pre_Frame_Return=-s ;; if no error, skip this frame
Post_Frame_Command=pkzip -mu %p%s %p%o ;;Move myfile.tga to myfile.zip
;; This removes tga from disk
Post_Frame_Return=f ;;If error, crash
Post_Scene_Command=command /C dta /o%p%s.flc /R%w,%h %p%s.zip ;;make myfile.flc
Post_Scene_Return=f ;;If error, crash
Pause_When_Done=Off
Continue_Trace=On
Test_Abort=On

View file

@ -0,0 +1,17 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
Fatal_Error_Command=command /C type fatal.out>>allscene.err
User_Abort_Command=command /C Echo get out>userabor.mes
Fatal_File=on
-P +b100 +X +a0.05 +r4 -j
+mb1
res320
-d +v
+Lallscene
-oallscene\
Pre_Scene_Command=exists userabor.mes
Pre_Scene_Return=-q
Pre_Frame_Command=exists allscene\%s.gif
Pre_Frame_Return=-q
Post_Frame_Command=tga2gif -d -m allscene\%s
Post_Scene_Command=command /C del allscene\%s.tga
+c

6
distribution/ini/low.ini Normal file
View file

@ -0,0 +1,6 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; LOW.INI
;;
Quality=4
Width=120
Height=90

View file

@ -0,0 +1,30 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; PNGFLC.INI
;;
;; Assuming Input_File=myfile.pov
;; this INI creates a myfile??.png output files
;; and then creates myfile.flc from it.
;;
;; Requires dta.exe to create flc
;; Requires exists.exe which is included in POV-Ray distribution.
;; If exists.exe is not available, comment out both Pre_Scene_... lines.
;;
Output_to_File=On
Output_File_Type=n
Pre_Frame_Command=
Pre_Frame_Return=
Post_Frame_Command=
Post_Frame_Return=
Pre_Scene_Command=exists %s.flc ;;If myfile.flc already exists
Pre_Scene_Return=-q ;; skip entire scene
;;
;; There is an unsolved problem when running dta directly.
;; Preliminary results show that calling it via command.com fixes
;; the problem but as yet, we don't know why.
;;
Post_Scene_Command=command /C dta /o%s.flc /R%w,%h %s*.png ;;make myfile.flc
Post_Scene_Return=f ;;If error, crash
Pause_When_Done=Off
Continue_Trace=On ;;Lets you resume
Test_Abort=On ;;Lets you interrupt

View file

@ -0,0 +1,30 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; PNGFLI.INI
;;
;; Assuming Input_File=myfile.pov
;; this INI creates a myfile??.png output files
;; and then creates myfile.fli from it.
;;
;; Requires dta.exe to create fli
;; Requires exists.exe which is included in POV-Ray distribution.
;; If exists.exe is not available, comment out both Pre_Scene_... lines.
;;
Output_to_File=On
Output_File_Type=n
Pre_Frame_Command=
Pre_Frame_Return=
Post_Frame_Command=
Post_Frame_Return=
Pre_Scene_Command=exists %s.fli ;;If myfile.fli already exists
Pre_Scene_Return=-q ;; skip entire scene
;;
;; There is an unsolved problem when running dta directly.
;; Preliminary results show that calling it via command.com fixes
;; the problem but as yet, we don't know why.
;;
Post_Scene_Command=command /C dta /o%s.fli /R1 %s*.png ;;make myfile.fli
Post_Scene_Return=f ;;If error, crash
Pause_When_Done=Off
Continue_Trace=On ;;Lets you resume
Test_Abort=On ;;Lets you interrupt

View file

@ -0,0 +1,55 @@
; PERSISTENCE OF VISION RAY TRACER
;
; POV-Ray VERSION 3.7
;
; SAMPLE POVRAY.INI FILE
;
; The general form of the options is "Variable=value". Everything
; between the equals sign and the end of the line is considered part
; of the value. The spacing and layout is free-form but only one option
; per line is allowed. Variables and values are not case-sensitive.
;
; Note: characters after a semi-colon are treated as a comment
;
; Traditional POV-Ray switches beginning with + or - are also allowed
; and they may be given with more than one switch per line.
;
; Add your own options at the bottom and/or edit these to suit. See the
; general documentation for full instructions on how to use INI options.
;
; Width of image in pixels. Accepts integer values.
;
Width = 800
;
;
; Height of image in pixels. Accepts integer values.
;
Height = 600
;
; Sets minimum number of objects before auto bounding kicks in.
;
Bounding_Threshold = 3
;
;
; Turn display on
Display=On
;
; Turn verbose mode on
Verbose=On
;
;
; Specify path to search for any files not found in current directory.
; For example: Library_Path="C:\Program Files\POV-Ray for Windows\include"
; There may be some entries already here; if there are they were
; probably added by the install process or whoever set up the
; software for you. At the least you can expect an entry that
; points to the standard POV-Ray include files directory; on
; some operating systems there may also be one which points to
; the system's fonts directory.
;
; Note that some platforms (e.g. Windows, unless this feature is
; turned off via the configuration file) will automatically append
; standard locations like those mentioned above to the library
; path list after reading this file, so in those cases you don't
; necessarily have to have anything at all here.
;

View file

@ -0,0 +1,174 @@
[160x120, No AA]
Width=160
Height=120
Antialias=Off
[160x120, AA 0.3]
Width=160
Height=120
Antialias=On
Antialias_Threshold=0.3
[256x144, 16:9 No AA]
Width=256
Height=144
Antialias=Off
[256x144,16:9 AA 0.3]
Width=256
Height=144
Antialias=On
Antialias_Threshold=0.3
[320x240, No AA, mosaic]
Width=320
Height=240
Antialias=Off
+SP16
+EP1
[320x240, No AA]
Width=320
Height=240
Antialias=Off
[320x240, AA 0.3]
Width=320
Height=240
Antialias=On
Antialias_Threshold=0.3
[480x270, 16:9 No AA]
Width=480
Height=270
Antialias=Off
[480x270, 16:9 AA 0.3]
Width=480
Height=270
Antialias=On
Antialias_Threshold=0.3
[512x384, No AA]
Width=512
Height=384
Antialias=Off
[512x384, AA 0.3]
Width=512
Height=384
Antialias=On
Antialias_Threshold=0.3
[640x480, quick, mosaic]
Width=640
Height=480
Antialias=Off
Quality=4
+SP16
[640x480, No AA, mosaic]
Width=640
Height=480
Antialias=Off
+SP16
[640x480, No AA]
Width=640
Height=480
Antialias=Off
[640x480, AA 0.3]
Width=640
Height=480
Antialias=On
Antialias_Threshold=0.3
[720x400, 16:9,mosaic,No AA]
Width=720
Height=400
Antialias=Off
+SP16
[720x400, 16:9 No AA]
Width=720
Height=400
Antialias=Off
[720x400, 16:9, AA 0.3]
Width=720
Height=400
Antialias=On
Antialias_Threshold=0.3
[800x600, No AA]
Width=800
Height=600
Antialias=Off
[800x600, AA 0.3]
Width=800
Height=600
Antialias=On
Antialias_Threshold=0.3
[1024x768, No AA]
Width=1024
Height=768
Antialias=Off
[1024x768, AA 0.3]
Width=1024
Height=768
Antialias=On
Antialias_Threshold=0.3
[1280x1024, AA 0.3]
Width=1280
Height=1024
Antialias=On
Antialias_Threshold=0.3
[1280x720, 16:9 No AA]
Width=1280
Height=720
Antialias=Off
[1280x720, 16:9, AA 0.3]
Width=1280
Height=720
Antialias=On
Antialias_Threshold=0.3
[1280x1024, 5:4, No AA]
Width=1280
Height=1024
Antialias=Off
[1280x1024, 5:4, AA 0.3]
Width=1280
Height=1024
Antialias=On
Antialias_Threshold=0.3
[1600x1200, No AA]
Width=1600
Height=1200
Antialias=Off
[1600x1200, AA 0.3]
Width=1600
Height=1200
Antialias=On
Antialias_Threshold=0.3
[1920x1080, 16:9, No AA]
Width=1920
Height=1080
Antialias=Off
[1920x1080 16:9 AA 0.3]
Width=1920
Height=1080
Antialias=On
Antialias_Threshold=0.3

View file

@ -0,0 +1,5 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; RES120.INI
;;
Width=120
Height=90

View file

@ -0,0 +1,5 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; RES1K.INI
;;
Width=1024
Height=768

View file

@ -0,0 +1,5 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; RES320.INI
;;
Width=320
Height=200

View file

@ -0,0 +1,5 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; RES640.INI
;;
Width=640
Height=480

View file

@ -0,0 +1,5 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; RES800.INI
;;
Width=800
Height=600

View file

@ -0,0 +1,9 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; SLOW.INI
;;
Quality=11
Antialias_Depth=3
Antialias=On
Antialias_Threshold=0.1
Jitter_Amount=0.5
Jitter=On

View file

@ -0,0 +1,30 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; TGAFLC.INI
;;
;; Assuming Input_File=myfile.pov
;; this INI creates a myfile??.tga output files
;; and then creates myfile.flc from it.
;;
;; Requires dta.exe to create flc
;; Requires exists.exe which is included in POV-Ray distribution.
;; If exists.exe is not available, comment out both Pre_Scene_... lines.
;;
Output_to_File=On
Output_File_Type=t
Pre_Frame_Command=
Pre_Frame_Return=
Post_Frame_Command=
Post_Frame_Return=
Pre_Scene_Command=exists %s.flc ;;If myfile.flc already exists
Pre_Scene_Return=-q ;; skip entire scene
;;
;; There is an unsolved problem when running dta directly.
;; Preliminary results show that calling it via command.com fixes
;; the problem but as yet, we don't know why.
;;
Post_Scene_Command=command /C dta /o%s.flc /R%w,%h %s*.tga ;;make myfile.flc
Post_Scene_Return=f ;;If error, crash
Pause_When_Done=Off
Continue_Trace=On ;;Lets you resume
Test_Abort=On ;;Lets you interrupt

View file

@ -0,0 +1,30 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; TGAFLI.INI
;;
;; Assuming Input_File=myfile.pov
;; this INI creates a myfile??.tga output files
;; and then creates myfile.fli from it.
;;
;; Requires dta.exe to create fli
;; Requires exists.exe which is included in POV-Ray distribution.
;; If exists.exe is not available, comment out both Pre_Scene_... lines.
;;
Output_to_File=On
Output_File_Type=t
Pre_Frame_Command=
Pre_Frame_Return=
Post_Frame_Command=
Post_Frame_Return=
Pre_Scene_Command=exists %s.fli ;;If myfile.fli already exists
Pre_Scene_Return=-q ;; skip entire scene
;;
;; There is an unsolved problem when running dta directly.
;; Preliminary results show that calling it via command.com fixes
;; the problem but as yet, we don't know why.
;;
Post_Scene_Command=command /C dta /o%s.fli /R1 %s*.tga ;;make myfile.fli
Post_Scene_Return=f ;;If error, crash
Pause_When_Done=Off
Continue_Trace=On ;;Lets you resume
Test_Abort=On ;;Lets you interrupt

View file

@ -0,0 +1,31 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; ZIPFLC.INI
;;
;; Assuming Input_File=myfile.pov
;; this INI creates a myfile.zip to hold all output files
;; and then creates myfile.flc from it.
;;
;; Requires pkzip.exe to zip/unzip
;; Requires dta.exe to create flc
;; Requires exists.exe which is included in POV-Ray distribution.
;; If exists.exe is not available, comment out both Pre_Scene_... lines.
;;
Output_to_File=On
Pre_Scene_Command=exists %s.flc ;;If myfile.flc already exists
Pre_Scene_Return=-q ;; skip entire scene
Pre_Frame_Command=pkzip -vb %s %o ;;Test if myfile.tga in myfile.zip
Pre_Frame_Return=-s ;; if no error, skip this frame
Post_Frame_Command=pkzip -mu %s %o ;;Move myfile.tga to myfile.zip
;; This removes tga from disk
Post_Frame_Return=f ;;If error, crash
;;
;; There is an unsolved problem when running dta directly.
;; Preliminary results show that calling it via command.com fixes
;; the problem but as yet, we don't know why.
;;
Post_Scene_Command=command /C dta /o%s.flc /R%w,%h %s.zip ;;make myfile.flc
Post_Scene_Return=f ;;If error, crash
Pause_When_Done=Off
Continue_Trace=On ;;Lets you resume
Test_Abort=On ;;Lets you interrupt

View file

@ -0,0 +1,30 @@
;; Persistence Of Vision Raytracer version 3.7 sample INI file.
;; ZIPFLI.INI
;;
;; Assuming Input_File=myfile.pov
;; this INI creates a myfile.zip to hold all output files
;; and then creates myfile.fli from it.
;;
;; Requires pkzip.exe to zip/unzip
;; Requires dta.exe to create fli
;; Requires exists.exe which is included in POV-Ray distribution.
;; If exists.exe is not available, comment out both Pre_Scene_... lines.
;;
Pre_Scene_Command=exists %s.fli ;;If myfile.fli already exists
Pre_Scene_Return=-q ;; skip entire scene
Pre_Frame_Command=pkzip -vb %s %o ;;Test if myfile.tga in myfile.zip
Pre_Frame_Return=-s ;; if no error, skip this frame
Post_Frame_Command=pkzip -mu %s %o ;;Move myfile.tga to myfile.zip
;; This removes tga from disk
Post_Frame_Return=f ;;If error, crash
;;
;; There is an unsolved problem when running dta directly.
;; Preliminary results show that calling it via command.com fixes
;; the problem but as yet, we don't know why.
;;
Post_Scene_Command=command /C dta /o%s.fli /R1 %s.zip ;;make myfile.fli
Post_Scene_Return=f ;;If error, crash
Pause_When_Done=Off
Continue_Trace=On ;;Lets you resume
Test_Abort=On ;;Lets you interrupt

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

View file

@ -0,0 +1,199 @@
# $File: //depot/public/povray/3.x/distribution/platform-specific/windows/Ini/pvtools.ini $
# $Revision: #1 $
# $Change: 6069 $
# $DateTime: 2013/11/06 11:59:40 $
# $Author: chrisc $
#
# The syntax of entries in PVTOOLS.INI is as follows:
#
# [Menu]
# ItemN=Description
#
# [Command]
# ItemN=command_string
#
# [Help]
# ItemN=help_line
#
# Where N is a number between 0 and 31, and entries in the [Help] section are optional.
#
# Item0 ... Item31
#
# are the item numbers that define the order in which entries appear in the Tools Menu.
#
# [Menu]
#
# Entries in the [Menu] section are what actually appears in the Tools Menu. The '&' character
# tells Windows where to put the underline in the menu entry. The underlined letter becomes
# the abbreviation for the command. For example the letter 'C' in '&Click Me' would become
# 'Click Me' when displayed in the Tools Menu, and you could access the command by pressing Alt+T
# and then 'C'. (Alt+T activates the Tools Menu).
#
# You should make sure that all Tools Menu entries have different abbreviations if you intend to
# access them this way. Of course, you don't have to supply any abbreviation if you don't want to.
#
# [Command]
#
# This is the command that POV-Ray will execute for that entry. This can be a Windows EXE, a batch
# file, or anything else that may be executed by the Win32 ShellExecute() API call. The command
# consists of the actual command name followed by any parameters you want to supply to the program.
#
# There are two special commands, '$S' and '$E'. $S means 'use the shell association for the
# filename that follows it', and '$E' means 'open the following file in the internal POVWIN editor'.
#
# Let's look at an example -
#
# Item4=$S %1
#
# Since %1 refers to the output file (see below) this means that Item 4 of the tools menu expands
# to a command to Windows to open the last output file with whatever program is associated with it.
#
# For example, if the last output file was 'c:\images\torus4.bmp' then the above command example
# would use whatever program is associated with BMP files (i.e. the program that Windows runs if
# you double-clicked on the TORUS4.BMP file in Windows Explorer) to open it.
#
# Note: If using the special $S or $E commands, DO NOT quote the parameters with '"', even if they
# will have spaces in them. Both of these commands may only be supplied a single parameter, which
# is taken to be the entire line following the command.
#
# POV-Ray for Windows has a number of pre-defined parameters that you can substitute into the command
# line before the program is run. These are defined by a percent sign ('%') followed by a letter or
# number. For example, '%i' means substitute the POV-Ray for Windows INI file directory in the place
# of the '%i'.
#
# Let's look at the command:
#
# notepad.exe %ipvtools.txt
#
# If you had installed POV-Ray for Windows into the directory 'c:\povwin3', then our standard INI
# file directory would be 'c:\povwin3\ini\'. When POV-Ray ran the above command, the '%i' would be
# replaced with 'c:\povwin3\ini\'. Note that the trailing '\' is provided by POV-Ray. This means that:
#
# notepad.exe %ipvtools.txt
#
# would become:
#
# notepad.exe c:\povwin3\ini\pvtools.txt
#
# Here are all of the predefined substitutions:
#
# %0 The contents of the 'SourceFile' entry of the 'LastRender' section in PVENGINE.INI. This will
# be the input file provided to POV-Ray for the most recent render. This information is extracted
# from the rendering engine itself, rather than any input dialog or command-line. It is the file
# which, after all processing of the command line and INI files was complete, was finally assigned
# as the input file.
#
# %1 The contents of the 'OutputFile' entry of the 'LastRender' section in PVENGINE.INI. This will be
# the output file from the last render, if any. This entry could be blank.
#
# %2 The contents of the 'SceneFile' entry of the 'LastRender' section in PVENGINE.INI. This will be
# the scene file name for the last render, without the .POV extension. You can use this by appending
# a new extension to it. For example,
#
# tga2gif %d\%1 %2.gif
#
# could expand to:
#
# tga2gif c:\scenes\myscene.tga myscene.gif
#
# assuming the input file was myscene.pov and the current directory at that time was c:\scenes.
#
# %4 The contents of the 'IniOutputFile' entry of the 'LastRender' section in PVENGINE.INI. If you had
# instructed POV-Ray to write an INI file from the last render, this would contain its name.
#
# %D The contents of the 'CurrentDirectory' entry of the 'LastRender' section in PVENGINE.INI. This is
# the current working directory that was set on your machine when POV-Ray began rendering the last
# file, and is what the other output file entries are probably relative to. You may need to provide
# '%d' with some of these other entries to get the full path.
#
# %H The POV-Ray for Windows binaries directory, as specified in the registry, e.g.
# 'c:\Program Files\POV-Ray for Windows v3.7\'. Note the trailing backslash is supplied.
#
# %P The POV-Ray for Windows documents directory, as specified in the registry, e.g.
# 'C:\Users\Joe\Documents\POV-Ray\v3.7\'. Note the trailing backslash is supplied.
#
# %I The POV-Ray for Windows INI directory. e.g. 'c:\Program Files\POV-Ray for Windows v3.7\ini'.
#
# %N The preset INI filename, as used in the render options dialog.
#
# %R The last render file (with full path) as supplied to POV-Ray from the render or choose file dialog.
# This is not necessarily the same thing as %S or %0
#
# %S The source file name as provided to POV-Ray on the last render of the current session. This is not
# necessarily the same thing as the %0 or %R directive. For example, %R will never provide the path
# to a file that was rendered via the File Queue without the use of the Command dialog. %S will,
# however, include any such file.
#
# %T The full path to PVTOOLS.INI. This is the file which holds the Tools Menu commands (i.e. this file).
#
# %% A literal percent character ('%').
#
# If any of the above seems confusing, there's an easy way to find out what's going on. If you place the
# statement DEBUG=1 in the General section of PVTOOLS.INI, POV-Ray for Windows will print out the string
# for each command both before and after it is expanded, instead of running the command that you select
# in the tool menu. That way you can see exactly what POV-Ray substitutes. The printout will be visible
# in the messages window.
#
# For example:
#
# [General]
# Debug=1
#
# will turn on debugging. while
#
# [General]
# Debug=0
#
# or omitting the statement entirely turns it off.
#
# [Help]
#
# You can have a help line appear in the status bar at the bottom of the window. You don't have to supply
# this entry if you don't want to.
#
# Example:
#
# [Help]
# Item1=Edit master POVRAY.INI in installation directory
#
# This command makes the string 'Edit master POVRAY.INI in installation directory' appear in the status bar
# when the mouse is over the 1st item in the Tools menu.
[Menu]
Item0=Edit &master POVRAY.INI
Item1=Edit PVEN&GINE.INI
Item2=Edit &last rendered file
Item3=Edit last &scene file
Item4=&View last rendered file
Item5=Edit resolution &INI file
Item6=Edit &user-defined syntax file
Item7=&Browse sample scenes folder
Item8=Edit &this menu.
[Command]
# NOTE! If using the $E or $E, DO NOT quote the parameters with '"'.
# If you are calling a program directly, you will probably need to quote the
# parameter; e.g. notepad.exe "%r"
Item0=$e %pini\povray.ini
Item1=$e %pini\pvengine.ini
Item2=$e %r
Item3=$e %0
Item4=$s %1
Item5=$e %n
Item6=$e %I\user-keywords.txt
Item7=$s %pscenes\
Item8=$e %t
[Help]
Item0=Edit master POVRAY.INI in installation directory
Item1=Edit PVENGINE.INI in installation directory
Item2=Edit the last file that POV-Ray was rendering
Item3=Edit the last scene file that you selected
Item4=View the output of the last render (assumes file output was on)
Item5=Edit secondary INI file as specified in Command-line dialog
Item6=Edit the user-defined syntax highlighting file
Item7=Open the folder containing the sample scenes installed with POV-Ray
Item8=Edit PVTOOLS.INI to alter this menu
[General]
Debug=0

View file

@ -0,0 +1,23 @@
# $File: //depot/public/povray/3.x/distribution/platform-specific/windows/Ini/user-keywords.txt $
# $Revision: #1 $
# $Change: 6069 $
# $DateTime: 2013/11/06 11:59:40 $
# $Author: chrisc $
#
# user-defined keywords may be placed in this file
# these keywords do not affect parsing or SDL; they are only used by the editor
# for syntax highlighting and keyword completion (i.e. ctl-space or tab)
#
# the syntax is one keyword per line. spaces are not permitted within keywords
# (leading or trailing spaces are allowed but will be stripped). any line containing
# more than one token will be ignored, as well any line starting with a '#'.
input_file_name
image_width
image_height
clock_delta
final_clock
final_frame
frame_number
initial_clock
initial_frame

View file

@ -0,0 +1,72 @@
// PoVRay 3.7 Scene File " ... .pov"
// author: ...
// date: ...
//--------------------------------------------------------------------------
#version 3.7;
global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 }}
//--------------------------------------------------------------------------
#include "colors.inc"
#include "textures.inc"
#include "glass.inc"
#include "metals.inc"
#include "golds.inc"
#include "stones.inc"
#include "woods.inc"
#include "shapes.inc"
#include "shapes2.inc"
#include "functions.inc"
#include "math.inc"
#include "transforms.inc"
//--------------------------------------------------------------------------
// camera ------------------------------------------------------------------
#declare Camera_0 = camera {perspective angle 75 // front view
location <0.0 , 1.0 ,-3.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_1 = camera {/*ultra_wide_angle*/ angle 90 // diagonal view
location <2.0 , 2.5 ,-3.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_2 = camera {/*ultra_wide_angle*/ angle 90 //right side view
location <3.0 , 1.0 , 0.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_3 = camera {/*ultra_wide_angle*/ angle 90 // top view
location <0.0 , 3.0 ,-0.001>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
camera{Camera_0}
// sun ----------------------------------------------------------------------
light_source{< 3000,3000,-3000> color White}
// sky ----------------------------------------------------------------------
sky_sphere { pigment { gradient <0,1,0>
color_map { [0.00 rgb <0.6,0.7,1.0>]
[0.35 rgb <0.1,0.0,0.8>]
[0.65 rgb <0.1,0.0,0.8>]
[1.00 rgb <0.6,0.7,1.0>]
}
scale 2
} // end of pigment
} //end of skysphere
// ground -------------------------------------------------------------------
plane{ <0,1,0>, 0
texture{ pigment{ checker color rgb<1,1,1>*1.2 color rgb<0.25,0.15,0.1>*0}
//normal { bumps 0.75 scale 0.025}
finish { phong 0.1}
} // end of texture
} // end of plane
//---------------------------------------------------------------------------
//---------------------------- objects in scene ----------------------------
//---------------------------------------------------------------------------
// sample sphere
sphere { <0,0,0>, 1.00
texture { Polished_Chrome
//pigment{ color Red } // rgb< 1, 0.0, 0.0>}
//finish { phong 1 reflection {0.40 metallic 0.5}}
} // end of texture
scale<1,1,1> rotate<0,0,0> translate<0,1.35,0>
} // end of sphere -----------------------------------

View file

@ -0,0 +1,79 @@
// PoVRay 3.7 Scene File " ... .pov"
// author: ...
// date: ...
//--------------------------------------------------------------------------
#version 3.7;
global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 }}
//--------------------------------------------------------------------------
#include "colors.inc"
#include "textures.inc"
#include "glass.inc"
#include "metals.inc"
#include "golds.inc"
#include "stones.inc"
#include "woods.inc"
#include "shapes.inc"
#include "shapes2.inc"
#include "functions.inc"
#include "math.inc"
#include "transforms.inc"
//--------------------------------------------------------------------------
// camera ------------------------------------------------------------------
#declare Camera_0 = camera {/*ultra_wide_angle*/ angle 75 // front view
location <0.0 , 1.0 ,-3.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_1 = camera {/*ultra_wide_angle*/ angle 90 // diagonal view
location <2.0 , 2.5 ,-3.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_2 = camera {/*ultra_wide_angle*/ angle 90 // right side view
location <3.0 , 1.0 , 0.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_3 = camera {/*ultra_wide_angle*/ angle 90 // top view
location <0.0 , 3.0 ,-0.001>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
camera{Camera_0}
// sun ---------------------------------------------------------------------
light_source{<-1500,2500,-2500> color White}
// sky ---------------------------------------------------------------------
sky_sphere { pigment { gradient <0,1,0>
color_map { [0.00 rgb <1.0,1.0,1.0>]
[0.30 rgb <0.0,0.1,1.0>]
[0.70 rgb <0.0,0.1,1.0>]
[1.00 rgb <1.0,1.0,1.0>]
}
scale 2
} // end of pigment
} //end of skysphere
// fog ---------------------------------------------------------------------
fog{fog_type 2
distance 50
color White
fog_offset 0.1
fog_alt 2.0
turbulence 0.8}
// ground ------------------------------------------------------------------
plane{ <0,1,0>, 0
texture{ pigment{ color rgb <0.825,0.57,0.35>}
normal { bumps 0.75 scale 0.025 }
finish { phong 0.1 }
} // end of texture
} // end of plane
//--------------------------------------------------------------------------
//---------------------------- objects in scene ----------------------------
//--------------------------------------------------------------------------

View file

@ -0,0 +1,79 @@
// PoVRay 3.7 Scene File " ... .pov"
// author: ...
// date: ...
//--------------------------------------------------------------------------
#version 3.7;
global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 }}
//--------------------------------------------------------------------------
#include "colors.inc"
#include "textures.inc"
#include "glass.inc"
#include "metals.inc"
#include "golds.inc"
#include "stones.inc"
#include "woods.inc"
#include "shapes.inc"
#include "shapes2.inc"
#include "functions.inc"
#include "math.inc"
#include "transforms.inc"
//--------------------------------------------------------------------------
// camera ------------------------------------------------------------------
#declare Camera_0 = camera {/*ultra_wide_angle*/ angle 75 // front view
location <0.0 , 1.0 ,-3.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_1 = camera {/*ultra_wide_angle*/ angle 90 // diagonal view
location <2.0 , 2.5 ,-3.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_2 = camera {/*ultra_wide_angle*/ angle 90 // right side view
location <3.0 , 1.0 , 0.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_3 = camera {/*ultra_wide_angle*/ angle 90 // top view
location <0.0 , 3.0 ,-0.001>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
camera{Camera_0}
// sun ---------------------------------------------------------------------
light_source{<-1500,2500,-2500> color White}
// sky ---------------------------------------------------------------------
sky_sphere { pigment { gradient <0,1,0>
color_map { [0.00 rgb <1.0,1.0,1.0>]
[0.30 rgb <0.0,0.1,1.0>]
[0.70 rgb <0.0,0.1,1.0>]
[1.00 rgb <1.0,1.0,1.0>]
}
scale 2
} // end of pigment
} //end of skysphere
// fog ---------------------------------------------------------------------
fog{fog_type 2
distance 50
color White
fog_offset 0.1
fog_alt 2.0
turbulence 0.8}
// ground ------------------------------------------------------------------
plane{ <0,1,0>, 0
texture{ pigment{ color rgb <1.00,0.95,0.8>}
normal { bumps 0.75 scale 0.025 }
finish { phong 0.1 }
} // end of texture
} // end of plane
//--------------------------------------------------------------------------
//---------------------------- objects in scene ----------------------------
//--------------------------------------------------------------------------

View file

@ -0,0 +1,74 @@
// PoVRay 3.7 Scene File " ... .pov"
// author: ...
// date: ...
//--------------------------------------------------------------------------
#version 3.7;
global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 }}
//--------------------------------------------------------------------------
#include "colors.inc"
#include "textures.inc"
#include "glass.inc"
#include "metals.inc"
#include "golds.inc"
#include "stones.inc"
#include "woods.inc"
#include "shapes.inc"
#include "shapes2.inc"
#include "functions.inc"
#include "math.inc"
#include "transforms.inc"
//--------------------------------------------------------------------------
// camera ------------------------------------------------------------------
#declare Camera_0 = camera {/*ultra_wide_angle*/ angle 75 // front view
location <0.0 , 1.0 ,-3.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_1 = camera {/*ultra_wide_angle*/ angle 90 // diagonal view
location <2.0 , 2.5 ,-3.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_2 = camera {/*ultra_wide_angle*/ angle 90 // right side view
location <3.0 , 1.0 , 0.0>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
#declare Camera_3 = camera {/*ultra_wide_angle*/ angle 90 // top view
location <0.0 , 3.0 ,-0.001>
right x*image_width/image_height
look_at <0.0 , 1.0 , 0.0>}
camera{Camera_0}
// sun ---------------------------------------------------------------------
light_source{<1500,2500,-2500> color White}
// sky ---------------------------------------------------------------------
plane{<0,1,0>,1 hollow
texture{ pigment{ bozo turbulence 0.76
color_map { [0.5 rgb <0.20, 0.20, 1.0>]
[0.6 rgb <1,1,1>]
[1.0 rgb <0.5,0.5,0.5>]}
}
finish {ambient 1 diffuse 0} }
scale 10000}
// fog ---------------------------------------------------------------------
fog{fog_type 2
distance 50
color White
fog_offset 0.1
fog_alt 2.0
turbulence 0.8}
// ground ------------------------------------------------------------------
plane { <0,1,0>, 0
texture{ pigment{ color rgb<0.35,0.65,0.0>*0.9 }
normal { bumps 0.75 scale 0.015 }
finish { phong 0.1 }
} // end of texture
} // end of plane
//--------------------------------------------------------------------------
//---------------------------- objects in scene ----------------------------
//--------------------------------------------------------------------------

Some files were not shown because too many files have changed in this diff Show more