/home
/jhiemstraxartec
/public_html
/test
/user
/themes
/minimaxing
/templates
/partials
/sections
/bios.html.twig
<section>
{% set creators = page.find('/components/creators') %}
{{ creators.content }}
<ul class="small-image-list">
{% for module in creators.collection %}
{{ module.content }}
{% endfor %}
</ul>
</section>
Arguments
"An exception has been thrown during the rendering of a template ("Template "modular/bio.txt.twig" is not defined.")."
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Twig
/Twig.php
$output = '';
try {
// Process Modular Twig
if ($item->modularTwig()) {
$twig_vars['content'] = $content;
$extension = $item->templateFormat();
$extension = $extension ? ".{$extension}.twig" : TEMPLATE_EXT;
$template = $item->template() . $extension;
$output = $content = $local_twig->render($template, $twig_vars);
}
// Process in-page Twig
if ($item->shouldProcess('twig')) {
$name = '@Page:' . $item->path();
$this->setTemplate($name, $content);
$output = $local_twig->render($name, $twig_vars);
}
} catch (\Twig_Error_Loader $e) {
throw new \RuntimeException($e->getRawMessage(), 404, $e);
}
return $output;
}
/**
* Process a Twig template directly by using a template name
* and optional array of variables
*
* @param string $template template to render with
* @param array $vars Optional variables
*
* @return string
*/
public function processTemplate($template, $vars = [])
{
// override the twig header vars for local resolution
$this->grav->fireEvent('onTwigTemplateVariables');
$vars += $this->twig_vars;
Arguments
"Template "modular/bio.txt.twig" is not defined."
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Loader
/ChainLoader.php
return $this->hasSourceCache[$name] = false;
}
public function getCacheKey($name)
{
$exceptions = [];
foreach ($this->loaders as $loader) {
if ($loader instanceof ExistsLoaderInterface && !$loader->exists($name)) {
continue;
}
try {
return $loader->getCacheKey($name);
} catch (LoaderError $e) {
$exceptions[] = \get_class($loader).': '.$e->getMessage();
}
}
throw new LoaderError(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : ''));
}
public function isFresh($name, $time)
{
$exceptions = [];
foreach ($this->loaders as $loader) {
if ($loader instanceof ExistsLoaderInterface && !$loader->exists($name)) {
continue;
}
try {
return $loader->isFresh($name, $time);
} catch (LoaderError $e) {
$exceptions[] = \get_class($loader).': '.$e->getMessage();
}
}
throw new LoaderError(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : ''));
}
}
Arguments
"Template "modular/bio.txt.twig" is not defined."
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Environment.php
/**
* Gets the template class associated with the given string.
*
* The generated template class is based on the following parameters:
*
* * The cache key for the given template;
* * The currently enabled extensions;
* * Whether the Twig C extension is available or not;
* * PHP version;
* * Twig version;
* * Options with what environment was created.
*
* @param string $name The name for which to calculate the template class name
* @param int|null $index The index if it is an embedded template
*
* @return string The template class name
*/
public function getTemplateClass($name, $index = null)
{
$key = $this->getLoader()->getCacheKey($name).$this->optionsHash;
return $this->templateClassPrefix.hash('sha256', $key).(null === $index ? '' : '___'.$index);
}
/**
* Gets the template class prefix.
*
* @return string The template class prefix
*
* @deprecated since 1.22 (to be removed in 2.0)
*/
public function getTemplateClassPrefix()
{
@trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), E_USER_DEPRECATED);
return $this->templateClassPrefix;
}
/**
* Renders a template.
Arguments
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Environment.php
/**
* Loads a template internal representation.
*
* This method is for internal use only and should never be called
* directly.
*
* @param string $name The template name
* @param int $index The index if it is an embedded template
*
* @return \Twig_TemplateInterface A template instance representing the given template name
*
* @throws LoaderError When the template cannot be found
* @throws RuntimeError When a previously generated cache is corrupted
* @throws SyntaxError When an error occurred during compilation
*
* @internal
*/
public function loadTemplate($name, $index = null)
{
return $this->loadClass($this->getTemplateClass($name), $name, $index);
}
/**
* @internal
*/
public function loadClass($cls, $name, $index = null)
{
$mainCls = $cls;
if (null !== $index) {
$cls .= '___'.$index;
}
if (isset($this->loadedTemplates[$cls])) {
return $this->loadedTemplates[$cls];
}
if (!class_exists($cls, false)) {
if ($this->bcGetCacheFilename) {
$key = $this->getCacheFilename($name);
} else {
Arguments
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Environment.php
*
* @param string|TemplateWrapper|\Twig\Template $name The template name
*
* @throws LoaderError When the template cannot be found
* @throws RuntimeError When a previously generated cache is corrupted
* @throws SyntaxError When an error occurred during compilation
*
* @return TemplateWrapper
*/
public function load($name)
{
if ($name instanceof TemplateWrapper) {
return $name;
}
if ($name instanceof Template) {
return new TemplateWrapper($this, $name);
}
return new TemplateWrapper($this, $this->loadTemplate($name));
}
/**
* Loads a template internal representation.
*
* This method is for internal use only and should never be called
* directly.
*
* @param string $name The template name
* @param int $index The index if it is an embedded template
*
* @return \Twig_TemplateInterface A template instance representing the given template name
*
* @throws LoaderError When the template cannot be found
* @throws RuntimeError When a previously generated cache is corrupted
* @throws SyntaxError When an error occurred during compilation
*
* @internal
*/
public function loadTemplate($name, $index = null)
Arguments
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Environment.php
@trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), E_USER_DEPRECATED);
return $this->templateClassPrefix;
}
/**
* Renders a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @return string The rendered template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function render($name, array $context = [])
{
return $this->load($name)->render($context);
}
/**
* Displays a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function display($name, array $context = [])
{
$this->load($name)->display($context);
}
/**
* Loads a template.
*
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Twig
/Twig.php
// override the twig header vars for local resolution
$this->grav->fireEvent('onTwigPageVariables', new Event(['page' => $item]));
$twig_vars = $this->twig_vars;
$twig_vars['page'] = $item;
$twig_vars['media'] = $item->media();
$twig_vars['header'] = $item->header();
$local_twig = clone $this->twig;
$output = '';
try {
// Process Modular Twig
if ($item->modularTwig()) {
$twig_vars['content'] = $content;
$extension = $item->templateFormat();
$extension = $extension ? ".{$extension}.twig" : TEMPLATE_EXT;
$template = $item->template() . $extension;
$output = $content = $local_twig->render($template, $twig_vars);
}
// Process in-page Twig
if ($item->shouldProcess('twig')) {
$name = '@Page:' . $item->path();
$this->setTemplate($name, $content);
$output = $local_twig->render($name, $twig_vars);
}
} catch (\Twig_Error_Loader $e) {
throw new \RuntimeException($e->getRawMessage(), 404, $e);
}
return $output;
}
/**
* Process a Twig template directly by using a template name
* and optional array of variables
*
Arguments
"modular/bio.txt.twig"
array:27 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"page" => Page {}
"media" => Media {}
"header" => {}
"content" => "<p>.3DS & .MAX</p>"
]
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Page
/Page.php
$excerpts = new Excerpts($this, $defaults);
// Initialize the preferred variant of Parsedown
if ($extra) {
$parsedown = new ParsedownExtra($excerpts);
} else {
$parsedown = new Parsedown($excerpts);
}
$this->content = $parsedown->text($this->content);
}
/**
* Process the Twig page content.
*/
private function processTwig()
{
$twig = Grav::instance()['twig'];
$this->content = $twig->processPage($this, $this->content);
}
/**
* Fires the onPageContentProcessed event, and caches the page content using a unique ID for the page
*/
public function cachePageContent()
{
$cache = Grav::instance()['cache'];
$cache_id = md5('page' . $this->id());
$cache->save($cache_id, ['content' => $this->content, 'content_meta' => $this->content_meta]);
}
/**
* Needed by the onPageContentProcessed event to get the raw page content
*
* @return string the current page content
*/
public function getRawContent()
{
return $this->content;
Arguments
Page {}
"<p>.3DS & .MAX</p>"
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Page
/Page.php
if ($process_twig) {
$this->processTwig();
}
if ($process_markdown) {
$this->processMarkdown();
}
// Content Processed but not cached yet
Grav::instance()->fireEvent('onPageContentProcessed', new Event(['page' => $this]));
} else {
if ($process_markdown) {
$this->processMarkdown();
}
// Content Processed but not cached yet
Grav::instance()->fireEvent('onPageContentProcessed', new Event(['page' => $this]));
if ($process_twig) {
$this->processTwig();
}
}
if ($cache_enable) {
$this->cachePageContent();
}
}
}
// Handle summary divider
$delimiter = $config->get('site.summary.delimiter', '===');
$divider_pos = mb_strpos($this->content, "<p>{$delimiter}</p>");
if ($divider_pos !== false) {
$this->summary_size = $divider_pos;
$this->content = str_replace("<p>{$delimiter}</p>", '', $this->content);
}
// Fire event when Page::content() is called
Grav::instance()->fireEvent('onPageContent', new Event(['page' => $this]));
}
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
if ($ignoreStrictCheck || !$this->env->isStrictVariables()) {
return;
}
throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), -1, $this->getSourceContext());
}
if ($isDefinedTest) {
return true;
}
if ($this->env->hasExtension('\Twig\Extension\SandboxExtension')) {
$this->env->getExtension('\Twig\Extension\SandboxExtension')->checkMethodAllowed($object, $method);
}
// Some objects throw exceptions when they have __call, and the method we try
// to call is not supported. If ignoreStrictCheck is true, we should return null.
try {
if (!$arguments) {
$ret = $object->$method();
} else {
$ret = \call_user_func_array([$object, $method], $arguments);
}
} catch (\BadMethodCallException $e) {
if ($call && ($ignoreStrictCheck || !$this->env->isStrictVariables())) {
return;
}
throw $e;
}
// @deprecated in 1.28
if ($object instanceof \Twig_TemplateInterface) {
$self = $object->getTemplateName() === $this->getTemplateName();
$message = sprintf('Calling "%s" on template "%s" from template "%s" is deprecated since version 1.28 and won\'t be supported anymore in 2.0.', $item, $object->getTemplateName(), $this->getTemplateName());
if ('renderBlock' === $method || 'displayBlock' === $method) {
$message .= sprintf(' Use block("%s"%s) instead).', $arguments[0], $self ? '' : ', template');
} elseif ('hasBlock' === $method) {
$message .= sprintf(' Use "block("%s"%s) is defined" instead).', $arguments[0], $self ? '' : ', template');
} elseif ('render' === $method || 'display' === $method) {
$message .= sprintf(' Use include("%s") instead).', $object->getTemplateName());
/home
/jhiemstraxartec
/public_html
/test
/cache
/twig
/a6
/a6e71229c07c4ac03d31c4ed1a3b887e66b4114333548c3d78e7922329d932c3.php
protected function doDisplay(array $context, array $blocks = [])
{
// line 1
echo "<section>
\t";
// line 2
$context["creators"] = $this->getAttribute(($context["page"] ?? null), "find", [0 => "/components/creators"], "method");
// line 3
echo "\t";
echo $this->getAttribute(($context["creators"] ?? null), "content", []);
echo "
\t<ul class=\"small-image-list\">
\t\t";
// line 5
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable($this->getAttribute(($context["creators"] ?? null), "collection", []));
foreach ($context['_seq'] as $context["_key"] => $context["module"]) {
// line 6
echo "\t\t\t";
echo $this->getAttribute($context["module"], "content", []);
echo "
\t\t";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['module'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 8
echo "\t</ul>
</section>
";
}
public function getTemplateName()
{
return "partials/sections/bios.html.twig";
}
public function isTraitable()
{
return false;
Arguments
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:35 [
"config" => Config {#1}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {#2}
"assets" => Assets {#3}
"taxonomy" => Taxonomy {#4}
"browser" => Browser {#5}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {#6}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {#7}
"page" => Page {#8}
"header" => {#9}
"media" => Media {#10}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {#11}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"creators" => Page {#12}
"_parent" => array:31 [
"config" => Config {#1}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {#2}
"assets" => Assets {#3}
"taxonomy" => Taxonomy {#4}
"browser" => Browser {#5}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {#6}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {#7}
"page" => Page {#8}
"header" => {#9}
"media" => Media {#10}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {#11}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"creators" => Page {#12}
]
"_seq" => Collection {}
"module" => Page {}
"_key" => "_latestmodel1"
]
[]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
ob_start(function () { return ''; });
try {
$this->display($context);
} catch (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
Arguments
array:30 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
]
[]
/home
/jhiemstraxartec
/public_html
/test
/cache
/twig
/6c
/6c1d65ea28cc330dbce01f6ef934f905e3f32b4a038c5fa70ecf5b43ea230884.php
use Twig\Source;
use Twig\Template;
/* partials/sidebar1.html.twig */
class __TwigTemplate_a78487088a0ec74ac1aef8f1f93868851d1727715fab3c67f9d695c8bcc1596c extends \Twig\Template
{
public function __construct(Environment $env)
{
parent::__construct($env);
$this->parent = false;
$this->blocks = [
];
}
protected function doDisplay(array $context, array $blocks = [])
{
// line 1
$this->loadTemplate("partials/sections/bios.html.twig", "partials/sidebar1.html.twig", 1)->display($context);
// line 2
$this->loadTemplate("partials/sections/sidebarbanner.html.twig", "partials/sidebar1.html.twig", 2)->display($context);
// line 3
$this->loadTemplate("partials/sections/randomimage.html.twig", "partials/sidebar1.html.twig", 3)->display($context);
}
public function getTemplateName()
{
return "partials/sidebar1.html.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
return array ( 34 => 3, 32 => 2, 30 => 1,);
}
Arguments
array:30 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:30 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
]
[]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
ob_start(function () { return ''; });
try {
$this->display($context);
} catch (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
Arguments
array:30 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
]
[]
/home
/jhiemstraxartec
/public_html
/test
/cache
/twig
/f4
/f448589b8fa5e8e96d271b869702bdf2c5f6c03d9e1ebdec2a1766abd9e01266.php
\t\t\t<div id=\"item\" class=\"block pure-u-2-3 h-entry\">
\t\t\t ";
// line 18
$this->loadTemplate("partials/tutorial.html.twig", "tutorialfull.html.twig", 18)->display(twig_array_merge($context, ["blog" => $this->getAttribute(($context["page"] ?? null), "parent", []), "truncate" => false]));
// line 19
echo "\t\t\t</div>
</div>
<a href=\"";
// line 23
echo $this->getAttribute($this->getAttribute(($context["page"] ?? null), "parent", []), "url", []);
echo "\"><strong><< Back to Tutorials</strong></a><br />
\t\t</section>
\t</div>
\t<div class=\"4u 12u(mobile)\">
\t\t";
// line 28
$this->loadTemplate("partials/sidebar1.html.twig", "tutorialfull.html.twig", 28)->display($context);
// line 29
echo "\t</div>
</div>
";
}
public function getTemplateName()
{
return "tutorialfull.html.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
Arguments
array:30 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
if ($useBlocks && isset($blocks[$name])) {
$template = $blocks[$name][0];
$block = $blocks[$name][1];
} elseif (isset($this->blocks[$name])) {
$template = $this->blocks[$name][0];
$block = $this->blocks[$name][1];
} else {
$template = null;
$block = null;
}
// avoid RCEs when sandbox is enabled
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
$template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
$e->guess();
throw $e;
}
} elseif (false !== $parent = $this->getParent($context)) {
$parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false);
Arguments
array:30 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
]
array:11 [
"head" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_head"
]
"galalbummeta" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_galalbummeta"
]
"stylesheets" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_stylesheets"
]
"javascripts" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_javascripts"
]
"header" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header"
]
"header_navigation" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header_navigation"
]
"banner" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_banner"
]
"body" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_body"
]
"content" => array:2 [
0 => __TwigTemplate_1fd2da7f05a02335033099a06781b7d00f84f79ced9a93dc72d9cf5790c09ebd {}
1 => "block_content"
]
"footer" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_footer"
]
"bottom" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_bottom"
]
]
/home
/jhiemstraxartec
/public_html
/test
/cache
/twig
/05
/05d859bec41ac5da994bb517e48f7a9558c5995f959256a93748d96374b382ab.php
$this->loadTemplate("partials/navigation.html.twig", "partials/base.html.twig", 79)->display($context);
// line 80
echo " </nav>
";
}
// line 106
public function block_banner($context, array $blocks = [])
{
}
// line 109
public function block_body($context, array $blocks = [])
{
// line 110
echo " <div id=\"main\">
<div class=\"container\">
";
// line 112
$this->displayBlock('content', $context, $blocks);
// line 113
echo " </div>
</div>
";
}
// line 112
public function block_content($context, array $blocks = [])
{
}
// line 117
public function block_footer($context, array $blocks = [])
{
// line 118
echo " <div id=\"footer-wrapper\">
<div class=\"container\">
";
// line 120
$this->loadTemplate("partials/footer.html.twig", "partials/base.html.twig", 120)->display($context);
Arguments
"content"
array:30 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
]
array:11 [
"head" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_head"
]
"galalbummeta" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_galalbummeta"
]
"stylesheets" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_stylesheets"
]
"javascripts" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_javascripts"
]
"header" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header"
]
"header_navigation" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header_navigation"
]
"banner" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_banner"
]
"body" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_body"
]
"content" => array:2 [
0 => __TwigTemplate_1fd2da7f05a02335033099a06781b7d00f84f79ced9a93dc72d9cf5790c09ebd {}
1 => "block_content"
]
"footer" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_footer"
]
"bottom" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_bottom"
]
]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
if ($useBlocks && isset($blocks[$name])) {
$template = $blocks[$name][0];
$block = $blocks[$name][1];
} elseif (isset($this->blocks[$name])) {
$template = $this->blocks[$name][0];
$block = $this->blocks[$name][1];
} else {
$template = null;
$block = null;
}
// avoid RCEs when sandbox is enabled
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
$template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
$e->guess();
throw $e;
}
} elseif (false !== $parent = $this->getParent($context)) {
$parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false);
Arguments
array:30 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
]
array:11 [
"head" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_head"
]
"galalbummeta" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_galalbummeta"
]
"stylesheets" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_stylesheets"
]
"javascripts" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_javascripts"
]
"header" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header"
]
"header_navigation" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header_navigation"
]
"banner" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_banner"
]
"body" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_body"
]
"content" => array:2 [
0 => __TwigTemplate_1fd2da7f05a02335033099a06781b7d00f84f79ced9a93dc72d9cf5790c09ebd {}
1 => "block_content"
]
"footer" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_footer"
]
"bottom" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_bottom"
]
]
/home
/jhiemstraxartec
/public_html
/test
/cache
/twig
/05
/05d859bec41ac5da994bb517e48f7a9558c5995f959256a93748d96374b382ab.php
<!-- 3dvtop -->
<ins class=\"adsbygoogle\"
style=\"display:inline-block;width:970px;height:90px\"
data-ad-client=\"ca-pub-2314626359896816\"
data-ad-slot=\"2869655782\"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
\t\t</div>
\t</div>
</div>
";
// line 106
$this->displayBlock('banner', $context, $blocks);
// line 108
echo "
";
// line 109
$this->displayBlock('body', $context, $blocks);
// line 116
echo "
";
// line 117
$this->displayBlock('footer', $context, $blocks);
// line 124
echo "
</div>
";
// line 127
$this->displayBlock('bottom', $context, $blocks);
// line 130
echo "</body>
</html>
";
}
// line 6
public function block_head($context, array $blocks = [])
Arguments
"body"
array:30 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
]
array:11 [
"head" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_head"
]
"galalbummeta" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_galalbummeta"
]
"stylesheets" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_stylesheets"
]
"javascripts" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_javascripts"
]
"header" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header"
]
"header_navigation" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header_navigation"
]
"banner" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_banner"
]
"body" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_body"
]
"content" => array:2 [
0 => __TwigTemplate_1fd2da7f05a02335033099a06781b7d00f84f79ced9a93dc72d9cf5790c09ebd {}
1 => "block_content"
]
"footer" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_footer"
]
"bottom" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_bottom"
]
]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:30 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
"theme_config" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
]
array:11 [
"head" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_head"
]
"galalbummeta" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_galalbummeta"
]
"stylesheets" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_stylesheets"
]
"javascripts" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_javascripts"
]
"header" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header"
]
"header_navigation" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header_navigation"
]
"banner" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_banner"
]
"body" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_body"
]
"content" => array:2 [
0 => __TwigTemplate_1fd2da7f05a02335033099a06781b7d00f84f79ced9a93dc72d9cf5790c09ebd {}
1 => "block_content"
]
"footer" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_footer"
]
"bottom" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_bottom"
]
]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
ob_start(function () { return ''; });
try {
$this->display($context);
} catch (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
Arguments
array:29 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
]
array:11 [
"head" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_head"
]
"galalbummeta" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_galalbummeta"
]
"stylesheets" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_stylesheets"
]
"javascripts" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_javascripts"
]
"header" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header"
]
"header_navigation" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_header_navigation"
]
"banner" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_banner"
]
"body" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_body"
]
"content" => array:2 [
0 => __TwigTemplate_1fd2da7f05a02335033099a06781b7d00f84f79ced9a93dc72d9cf5790c09ebd {}
1 => "block_content"
]
"footer" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_footer"
]
"bottom" => array:2 [
0 => __TwigTemplate_aed3f39d8681d6e3378d0353681a4dc14e38b6e07894141497597544251eadee {#1}
1 => "block_bottom"
]
]
/home
/jhiemstraxartec
/public_html
/test
/cache
/twig
/f4
/f448589b8fa5e8e96d271b869702bdf2c5f6c03d9e1ebdec2a1766abd9e01266.php
{
public function __construct(Environment $env)
{
parent::__construct($env);
$this->blocks = [
'content' => [$this, 'block_content'],
];
}
protected function doGetParent(array $context)
{
// line 1
return "partials/base.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$this->parent = $this->loadTemplate("partials/base.html.twig", "tutorialfull.html.twig", 1);
$this->parent->display($context, array_merge($this->blocks, $blocks));
}
// line 3
public function block_content($context, array $blocks = [])
{
// line 4
echo "
<div class=\"row main-row\">
\t<div class=\"8u 12u(mobile)\">
\t\t<section class=\"left-content\">
\t\t
<a href=\"";
// line 10
echo $this->getAttribute($this->getAttribute(($context["page"] ?? null), "parent", []), "url", []);
echo "\"><strong><< Back to Tutorials</strong></a><br /><br />
\t\t\t";
// line 12
if ($this->getAttribute($this->getAttribute($this->getAttribute(($context["config"] ?? null), "plugins", []), "breadcrumbs", []), "enabled", [])) {
Arguments
array:29 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
]
array:1 [
"content" => array:2 [
0 => __TwigTemplate_1fd2da7f05a02335033099a06781b7d00f84f79ced9a93dc72d9cf5790c09ebd {}
1 => "block_content"
]
]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:29 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
]
array:1 [
"content" => array:2 [
0 => __TwigTemplate_1fd2da7f05a02335033099a06781b7d00f84f79ced9a93dc72d9cf5790c09ebd {}
1 => "block_content"
]
]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
ob_start(function () { return ''; });
try {
$this->display($context);
} catch (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
Arguments
array:29 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
"grav" => Grav {}
]
array:1 [
"content" => array:2 [
0 => __TwigTemplate_1fd2da7f05a02335033099a06781b7d00f84f79ced9a93dc72d9cf5790c09ebd {}
1 => "block_content"
]
]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Template.php
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
ob_start(function () { return ''; });
try {
$this->display($context);
} catch (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
Arguments
array:28 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/TemplateWrapper.php
* @internal
*/
public function __construct(Environment $env, Template $template)
{
$this->env = $env;
$this->template = $template;
}
/**
* Renders the template.
*
* @param array $context An array of parameters to pass to the template
*
* @return string The rendered template
*/
public function render($context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
return $this->template->render($context, \func_num_args() > 1 ? func_get_arg(1) : []);
}
/**
* Displays the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function display($context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
$this->template->display($context, \func_num_args() > 1 ? func_get_arg(1) : []);
}
/**
* Checks if a block is defined.
*
* @param string $name The block name
* @param array $context An array of parameters to pass to the template
*
Arguments
array:28 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
]
[]
/home
/jhiemstraxartec
/public_html
/test
/vendor
/twig
/twig
/src
/Environment.php
@trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), E_USER_DEPRECATED);
return $this->templateClassPrefix;
}
/**
* Renders a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @return string The rendered template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function render($name, array $context = [])
{
return $this->load($name)->render($context);
}
/**
* Displays a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function display($name, array $context = [])
{
$this->load($name)->display($context);
}
/**
* Loads a template.
*
Arguments
array:28 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
]
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Twig
/Twig.php
$ext = '.' . ($format ?: 'html') . TWIG_EXT;
// determine if params are set, if so disable twig cache
$params = $this->grav['uri']->params(null, true);
if (!empty($params)) {
$this->twig->setCache(false);
}
// Get Twig template layout
$template = $this->template($page->template() . $ext);
try {
$output = $this->twig->render($template, $vars + $twig_vars);
} catch (\Twig_Error_Loader $e) {
$error_msg = $e->getMessage();
// Try html version of this template if initial template was NOT html
if ($ext !== '.html' . TWIG_EXT) {
try {
$page->templateFormat('html');
$output = $this->twig->render($page->template() . '.html' . TWIG_EXT, $vars + $twig_vars);
} catch (\Twig_Error_Loader $e) {
throw new \RuntimeException($error_msg, 400, $e);
}
} else {
throw new \RuntimeException($error_msg, 400, $e);
}
}
return $output;
}
/**
* Wraps the Twig_Loader_Filesystem addPath method (should be used only in `onTwigLoader()` event
* @param string $template_path
* @param string $namespace
*/
public function addPath($template_path, $namespace = '__main__')
{
$this->loader->addPath($template_path, $namespace);
}
Arguments
"tutorialfull.html.twig"
array:28 [
"config" => Config {}
"system" => array:27 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => "http://www.3dvalley.com"
"username_regex" => "^[a-z0-9_-]{3,16}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => []
"default_lang" => null
"include_default_lang" => true
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => false
]
"pages" => array:26 [
"theme" => "minimaxing"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => true
"twig" => false
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => true
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "txt"
1 => "xml"
2 => "html"
3 => "htm"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => true
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => true
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => false
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "apcu"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 604800
"gzip" => true
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => true
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => true
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => 1
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 33554432
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => "/"
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
]
"theme" => array:2 [
"enabled" => true
"dropdown" => array:1 [
"enabled" => false
]
]
"site" => array:14 [
"title" => "3Dvalley"
"default_lang" => "en"
"author" => array:2 [
"name" => "Admin"
"email" => "webmaster@3dvalley.com"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:1 [
"description" => "Free 3D models and textures"
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:12 [
"/tutorials/3d-studio-max-hotkeys-and-mouse-essentials" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials "
"/tutorials/3d-studio-max-tutorial-modeling-a-plunger" => "/tutorials/modeling-a-plunger-in-3d-studio-max"
"/tutorials/modeling-a-brake-rotor" => "/tutorials/modeling-brake-rotor-in-3d-studio-max"
"/models" => "/3d-models"
"/free-textures" => "/textures"
"/textures.shtml" => "/textures"
"/tutorials/rendering-objects-in-a-solidwire-mix" => "/tutorials/rendering-wip-images-in-3d-studio-max"
"/tutorials/modeling-a-highly-detailed-basketball-in-3d-studio-max" => "/tutorials/modeling-a-highly-detailed-basketball-in-3ds-max/"
"/models.shtml" => "/3d-models"
"/c/tutorials" => "/tutorials"
"/models/models_household.shtml" => "/3d-models/household"
"/downloadables/3DStudioMAX-hotkeys.pdf" => "/tutorials/threed-studio-max-hotkeys-and-mouse-essentials"
]
"routes" => null
"blog" => array:1 [
"route" => "/blog"
]
"header" => array:2 [
"title" => "I'm Jonathan Doe."
"description" => "I'm a Manila based <span>graphic designer</span>, <span>illustrator</span> and <span>webdesigner</span> creating awesome and effective visual identities for companies of all sizes around the globe. Let's <a class="smoothscroll" href="#about">start scrolling</a> and learn more <a class="smoothscroll" href="#about">about me</a>."
]
"copyright" => array:2 [
0 => array:1 [
"line" => "Copyright 2014 CeeVee"
]
1 => array:1 [
"line" => "Design by <a title="Styleshout" href="http://www.styleshout.com/">Styleshout</a>"
]
]
"social" => array:7 [
0 => array:2 [
"url" => "#"
"icon" => "facebook"
]
1 => array:2 [
"url" => "#"
"icon" => "twitter"
]
2 => array:2 [
"url" => "#"
"icon" => "google-plus"
]
3 => array:2 [
"url" => "#"
"icon" => "linkedin"
]
4 => array:2 [
"url" => "#"
"icon" => "instagram"
]
5 => array:2 [
"url" => "#"
"icon" => "dribbble"
]
6 => array:2 [
"url" => "#"
"icon" => "skype"
]
]
"twitter" => array:7 [
"id" => "657554810648948736"
"domId" => "tw-widget1"
"maxTweets" => 3
"enableLinks" => "true"
"showInteraction" => "false"
"showImages" => "false"
"showUser" => "false"
]
"acxtest" => "TEST"
]
"uri" => Uri {}
"assets" => Assets {}
"taxonomy" => Taxonomy {}
"browser" => Browser {}
"base_dir" => "/home/jhiemstraxartec/public_html/test"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "http://www.3dvalley.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/home/jhiemstraxartec/public_html/test/user/themes/minimaxing"
"theme_url" => "/user/themes/minimaxing"
"html_lang" => "en"
"language_codes" => LanguageCodes {}
"json" => "</script><script>"
"myvar" => "</script><script>"
"form" => null
"form_max_filesize" => 32
"form_json_response" => []
"pages" => Page {}
"page" => Page {}
"header" => {}
"media" => Media {}
"content" => """
<p>In this tutorial you will learn how to create a realistic glass material and turn our chess pawn into a realistic glass object. Key terms include reflection, refraction, opacity, and fall-off. This tutorial is aimed at the beginner, but since there are several ways to create glass, it might be interesting for everyone else as well.</p>\n
\n
<p>Although this tutorial is based on 3ds Max, the same settings apply to many other 3D products.\n
Note: Click on the thumbnail in each step for a larger screenshot that includes the viewports and the relevant portion of the user interface.</p>\n
<p><strong>Step 1</strong>\n
Because this tutorial covers only how to create the glass material you need to add an object to your scene yourself. This can be anything from the simple pawn we use (download the <a href="http://3dvalley.com/3d-models/miscellaneous">chess pawn </a> here) to the sophisticated high detail models you create.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/3/4/b/1/b34b1f5e8a421b3bbf747be54088fcc5c97bf0af-tut2full1.jpeg"><img alt="1" src="/images/8/4/4/8/0/844805f89907b9d7072d67e407b21627d670749b-tut2full1.jpeg" /></a></p>\n
<p><strong>Step 2</strong>\n
Press the M key to open the Material Editor (or select Material Editor from the Rendering menu) and rename the first material to Glass.</p>\n
<p>Drag the material to your object in the scene to assign it.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/2/9/e/6/d29e688b888084edba227ebfc7d80e901c8e5cf4-tut2full2.jpeg"><img alt="2" src="/images/e/a/6/e/7/ea6e77625110ec3e6f8d077acfcfee5c93e6e2fc-tut2full2.jpeg" /></a></p>\n
<p><strong>Step 3</strong>\n
Set the Ambient and Diffuse color of the material to black. And set the Specular Level to 275 and Glossiness to 45.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/8/1/c/6/4/81c648c46fb291c139f41b5fb202a5b4fa56bcea-tut2full3.jpeg"><img alt="3" src="/images/5/5/2/6/1/55261a85e3a8f636fbf7c639284b13cbccd743c1-tut2full3.jpeg" /></a></p>\n
<p><strong>Step 4</strong>\n
Click on the blank square button after Opacity and add a Falloff map. Set the Falloff Type to Fresnel (click here for an additional screen shot).</p>\n
<p>Go up one level, back to the Glass material, by choosing Glass from the drop down menu (where it says Map #3, see the additional screen shot.)</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/7/c/f/e/2/7cfe251b71885bffb1b41dff754147aad48d14ea-tut2full4.jpeg"><img alt="4" src="/images/8/3/8/6/a/8386a09634c664b409e1ef6f89493ab7307d6e01-tut2full4.jpeg" /></a></p>\n
<p><strong>Step 5</strong>\n
Now that the main Glass material is select again, scroll down in the Material Editor and add a new Raytrace map in the Refraction slot. Set the Refraction level to 80.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/0/b/0/d/b/0b0dbd258d851c4fa0b936011afe0123883ec576-tut2full5.jpeg"><img alt="5" src="/images/e/2/4/7/8/e2478e8c8873c134823246973b591f0169e546b9-tut2full5.jpeg" /></a></p>\n
<p><strong>Step 6</strong>\n
To make the reflections and the colors smooth, instead of grainy, you will have to enable Supersampling for the Glass material (just above the Maps rollout. Enable the option Enable Sampler and choose a method from the list. In most cases the Max 2.5 Star will do just fine, but if your machine can handle it, you can try others that may give better results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/b/e/4/9/8/be49836351c3fee0c74d93c21082e6255b2b95c0-tut2full6.jpeg"><img alt="6" src="/images/3/3/4/6/8/334682ef7779d94593a330849976251ece5e395a-tut2full6.jpeg" /></a></p>\n
<p><strong>Step 7</strong>\n
You can press F9 now to do a quick render, but it won’t look much like glass yet. First you will need to make some changes to your scene, the environment. Remember that glass is almost entirely transparent and can be seen only because of the reflections of light and objects in its surroundings.</p>\n
<p>Let’s start with adding a ground plane. Assign it a wood material from the Material Library (we used the default Wood_Ashen). Make sure the plane is large as shown in the screen shot.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/6/4/c/9/d/64c9d70db6191bf9b95eb3fc200f583a6ea70381-tut2full7.jpeg"><img alt="7" src="/images/c/a/1/e/5/ca1e5f0c88d3d9d39f3ab0bca1a220cc32df8b07-tut2full7.jpeg" /></a></p>\n
<p><strong>Step 8</strong>\n
Next, let’s makes some changes to the environment as the glass will need something to reflect. You can add object and a sky and such yourself, but for the sake of this tutorials an environment map will do. From the Rendering menu, select Environment (or press 8). Click the big empty button below Environment Map and select Background_Mountains (or any other background) from the Mtl Library.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/2/0/f/2/b/20f2ba90d388721cd5e8fb9c498e624c12d1f350-tut2full8.jpeg"><img alt="8" src="/images/9/b/3/8/e/9b38ef33eac4441e443192157abff413313e638c-tut2full8.jpeg" /></a></p>\n
<p><strong>Step 9</strong>\n
If you render your scene again, you will see it will look very different and really “glass-like”. However, there are ways to make it more realistic. You could start by enabling the 2-Sided option for the Glass material. This will allow us to see the inside of the model. Click the thumb on the right for more info.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/5/0/1/2/3/501231ed7a4588a4395b8f67cfc4826a1a94889f-tut2full9.jpeg"><img alt="9" src="/images/4/a/1/4/a/4a14a9ec5a574ccf4de22c2ec632f4d74aa91180-tut2full9.jpeg" /></a></p>\n
<p>Render again, and notice the difference, if any. The results won’t always look good, depending on the model.</p>\n
<p><strong>Step 10</strong>\n
Let’s try another trick I like to use to make the glass more realistic, although it will make the glass object a hollow object (which is fine for many glass objects and often even desired). Select your object and press CTRL-V (select Copy and click OK) to clone it. Apply a Push modifier to the clone and set the push value to -0.5 (try other values after rendering to check which works best for your model).</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/c/3/d/e/5/c3de59fd28a9665004721337f0c1c59a20650ce4-tut2full10.jpeg"><img alt="10" src="/images/5/d/7/f/d/5d7fd76969ff7fb390572e077e0815505ad31b72-tut2full10.jpeg" /></a></p>\n
<p><strong>Step 11</strong>\n
In the Material Editor make a copy of the Glass material and name it Glass Int. Make sure the option 2-Sided is enabled for the Glass Int material but disabled for the Glass material. Assign the Glass Int material to the clone and make sure the original Glass material is assigned to the outside model.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/d/8/b/0/9/d8b09f4aaaaaff9f0c3bf70c110a01bd0ec955e3-tut2full11.jpeg"><img alt="11" src="/images/b/b/5/e/c/bb5ec47105e74b757b1fe805b18c244045f4ec8b-tut2full11.jpeg" /></a></p>\n
<p><strong>Step 12</strong>\n
Render again (F9 or F10) and notice the difference. You should end up with something similar as shown on the right. The actual result will depend mostly on the geometry of your model and its environment. Try out different background and check out the results.</p>\n
<p><a rel="lightbox" data-width="1024" data-height="768" href="/images/a/4/c/0/6/a4c061e2c7da3a3fd26079150d05b2c9718a7d19-tut2full12.jpeg"><img alt="12" src="/images/0/7/1/6/4/07164da76720819510c15eb71bb7f93b70f4ca44-tut2full12.jpeg" /></a></p>
"""
]
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Service
/OutputServiceProvider.php
namespace Grav\Common\Service;
use Grav\Common\Page\Interfaces\PageInterface;
use Grav\Common\Twig\Twig;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class OutputServiceProvider implements ServiceProviderInterface
{
public function register(Container $container)
{
$container['output'] = function ($c) {
/** @var Twig $twig */
$twig = $c['twig'];
/** @var PageInterface $page */
$page = $c['page'];
return $twig->processSite($page->templateFormat());
};
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/vendor
/pimple
/pimple
/src
/Pimple
/Container.php
{
if (!isset($this->keys[$id])) {
throw new UnknownIdentifierException($id);
}
if (
isset($this->raw[$id])
|| !\is_object($this->values[$id])
|| isset($this->protected[$this->values[$id]])
|| !\method_exists($this->values[$id], '__invoke')
) {
return $this->values[$id];
}
if (isset($this->factories[$this->values[$id]])) {
return $this->values[$id]($this);
}
$raw = $this->values[$id];
$val = $this->values[$id] = $raw($this);
$this->raw[$id] = $raw;
$this->frozen[$id] = true;
return $val;
}
/**
* Checks if a parameter or an object is set.
*
* @param string $id The unique identifier for the parameter or object
*
* @return bool
*/
public function offsetExists($id)
{
return isset($this->keys[$id]);
}
/**
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/RenderProcessor.php
namespace Grav\Common\Processors;
use Grav\Common\Page\Interfaces\PageInterface;
use Grav\Framework\Psr7\Response;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class RenderProcessor extends ProcessorBase
{
public $id = 'render';
public $title = 'Render';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$container = $this->container;
$output = $container['output'];
if ($output instanceof ResponseInterface) {
return $output;
}
ob_start();
// Use internal Grav output.
$container->output = $output;
$container->fireEvent('onOutputGenerated');
echo $container->output;
// remove any output
$container->output = '';
$this->container->fireEvent('onOutputRendered');
$html = ob_get_clean();
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/DebuggerAssetsProcessor.php
namespace Grav\Common\Processors;
use Grav\Framework\Psr7\Response;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class DebuggerAssetsProcessor extends ProcessorBase
{
public $id = 'debugger_assets';
public $title = 'Debugger Assets';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['debugger']->addAssets();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/PagesProcessor.php
$this->addMessage("Routed to page {$page->rawRoute()} (type: {$page->template()}) [Not Found fallback]");
} else {
$this->addMessage("Routed to page {$page->rawRoute()} (type: {$page->template()})");
$task = $this->container['task'];
$action = $this->container['action'];
if ($task) {
$event = new Event(['task' => $task, 'page' => $page]);
$this->container->fireEvent('onPageTask', $event);
$this->container->fireEvent('onPageTask.' . $task, $event);
} elseif ($action) {
$event = new Event(['action' => $action, 'page' => $page]);
$this->container->fireEvent('onPageAction', $event);
$this->container->fireEvent('onPageAction.' . $action, $event);
}
}
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/TwigProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class TwigProcessor extends ProcessorBase
{
public $id = 'twig';
public $title = 'Twig';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['twig']->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/AssetsProcessor.php
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class AssetsProcessor extends ProcessorBase
{
public $id = '_assets';
public $title = 'Assets';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['assets']->init();
$this->container->fireEvent('onAssetsInitialized');
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/SchedulerProcessor.php
namespace Grav\Common\Processors;
use RocketTheme\Toolbox\Event\Event;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class SchedulerProcessor extends ProcessorBase
{
public $id = '_scheduler';
public $title = 'Scheduler';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$scheduler = $this->container['scheduler'];
$this->container->fireEvent('onSchedulerInitialized', new Event(['scheduler' => $scheduler]));
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/BackupsProcessor.php
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class BackupsProcessor extends ProcessorBase
{
public $id = '_backups';
public $title = 'Backups';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$backups = $this->container['backups'];
$backups->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/TasksProcessor.php
}
$this->stopTimer();
return $response;
} catch (NotFoundException $e) {
// Task not found: Let it pass through.
}
}
if ($task) {
$this->container->fireEvent('onTask.' . $task);
} elseif ($action) {
$this->container->fireEvent('onAction.' . $action);
}
}
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/RequestProcessor.php
$uri = $request->getUri();
$ext = mb_strtolower(pathinfo($uri->getPath(), PATHINFO_EXTENSION));
$request = $request
->withAttribute('grav', $this->container)
->withAttribute('time', $_SERVER['REQUEST_TIME_FLOAT'] ?? GRAV_REQUEST_TIME)
->withAttribute('route', Uri::getCurrentRoute()->withExtension($ext))
->withAttribute('referrer', $this->container['uri']->referrer());
$event = new RequestHandlerEvent(['request' => $request, 'handler' => $handler]);
/** @var RequestHandlerEvent $event */
$event = $this->container->fireEvent('onRequestHandlerInit', $event);
$response = $event->getResponse();
$this->stopTimer();
if ($response) {
return $response;
}
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/ThemesProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class ThemesProcessor extends ProcessorBase
{
public $id = 'themes';
public $title = 'Themes';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['themes']->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/PluginsProcessor.php
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class PluginsProcessor extends ProcessorBase
{
public $id = 'plugins';
public $title = 'Plugins';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
// TODO: remove in 2.0.
$this->container['accounts'];
$this->container['plugins']->init();
$this->container->fireEvent('onPluginsInitialized');
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/InitializeProcessor.php
}
/** @var Uri $uri */
$uri = $this->container['uri'];
$uri->init();
// Redirect pages with trailing slash if configured to do so.
$path = $uri->path() ?: '/';
if ($path !== '/'
&& $config->get('system.pages.redirect_trailing_slash', false)
&& Utils::endsWith($path, '/')) {
$redirect = (string) $uri::getCurrentRoute()->toString();
$this->container->redirect($redirect);
}
$this->container->setLocale();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/DebuggerProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class DebuggerProcessor extends ProcessorBase
{
public $id = '_debugger';
public $title = 'Init Debugger';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['debugger']->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/ErrorsProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class ErrorsProcessor extends ProcessorBase
{
public $id = '_errors';
public $title = 'Error Handlers Reset';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['errors']->resetHandlers();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/LoggerProcessor.php
/** @var Config $config */
$config = $grav['config'];
switch ($config->get('system.log.handler', 'file')) {
case 'syslog':
$log = $grav['log'];
$log->popHandler();
$facility = $config->get('system.log.syslog.facility', 'local6');
$logHandler = new SyslogHandler('grav', $facility);
$formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%");
$logHandler->setFormatter($formatter);
$log->pushHandler($logHandler);
break;
}
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Processors
/ConfigurationProcessor.php
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class ConfigurationProcessor extends ProcessorBase
{
public $id = '_config';
public $title = 'Configuration';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['config']->init();
$this->container['plugins']->setup();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {}
RequestHandler {}
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/home
/jhiemstraxartec
/public_html
/test
/system
/src
/Grav
/Common
/Grav.php
},
'debuggerAssetsProcessor' => function () {
return new DebuggerAssetsProcessor($this);
},
'renderProcessor' => function () {
return new RenderProcessor($this);
},
]
);
$default = function (ServerRequestInterface $request) {
return new Response(404);
};
/** @var Debugger $debugger */
$debugger = $this['debugger'];
$collection = new RequestHandler($this->middleware, $default, $container);
$response = $collection->handle($this['request']);
$this->header($response);
echo $response->getBody();
$debugger->render();
register_shutdown_function([$this, 'shutdown']);
}
/**
* Set the system locale based on the language and configuration
*/
public function setLocale()
{
// Initialize Locale if set and configured.
if ($this['language']->enabled() && $this['config']->get('system.languages.override_locale')) {
$language = $this['language']->getLanguage();
setlocale(LC_ALL, \strlen($language) < 3 ? ($language . '_' . strtoupper($language)) : $language);
} elseif ($this['config']->get('system.default_locale')) {
setlocale(LC_ALL, $this['config']->get('system.default_locale'));
Arguments
/home
/jhiemstraxartec
/public_html
/test
/index.php
// Set timezone to default, falls back to system if php.ini not set
date_default_timezone_set(@date_default_timezone_get());
// Set internal encoding if mbstring loaded
if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
mb_internal_encoding('UTF-8');
// Get the Grav instance
$grav = Grav::instance(
array(
'loader' => $loader
)
);
// Process the page
try {
$grav->process();
} catch (\Error $e) {
$grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
throw $e;
} catch (\Exception $e) {
$grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
throw $e;
}