Jump to content
Hash, Inc. Forums
robcat2075

C++ study group weekly discussion thread

Recommended Posts

May Day! May Day! May 1 is coming

Let's get started!

For you to do before our first meeting (Time to be decided)

  • get your account set up at Udemy.com
  • Register for the free course "C++ Tutorial for Complete Beginners" taught by John Purcell
  • Watch Lecture  "Introducing C++"
  • Read slide  "Screen Resolution"
  • Watch lecture "Setup and installation" (we will make a decision shortly about what to install)

Use the above lecture watching to find and understand the Udemy interface for chapter selection, subtitles ON/OFF, book marking, asking questions...

 

Share this post


Link to post
Share on other sites

Checking in and up to speed on instructions thus far.

Curious about what we'll standardize on for compiler and IDE.  :)

 

Share this post


Link to post
Share on other sites

I had complete success in installing Visual Studio 2015.

I have had zero success in getting it to work. I'm hoping Paul can tell me what I'm doing wrong tonight.

Our meeting is at 10pm Central time.

Share this post


Link to post
Share on other sites

At the meeting Thursday night we resolved to pursue Visual Studio 2019 as our platform. If you don't have it installed, get it! That includes me.

Assignment:

  • Get VS 2019 Community edition
  • watch section 4 (Hello World) of course
  • Test your install of VS by compiling (F5) the VS's default "console application" project
  • Make your own "Hello World" program based on the instructor's model in the lecture

     

 

Screen caps of my Visual Studio install

Choose Community edition:
01 VS 2019 DL site.JPG
 

Click through this screen:

02 VS 2019 Install.JPG

 

This download is for the actual installer:

03 VS 2019 Downloading.JPG

 

Here we get to Choose "Desktop development with C++". I believe that is the only thing you need to check:
04 VS 2019 desktopDevCpp.JPG

 

 

The download is long so don't let your computer go to sleep.

05 VS 2019 more DL.JPG

 

For Development Settings choose "Visual C++", then "Start Visual Studio":

06 VS 2019 SetupCpp.JPG

 

Choose "Create a new project":

07 VS 2019 Choose New.JPG

 

Choose "Console App" then "Next"

08 VS 2019 Choose ConsoleCpp.JPG

 

Accept the defaults for file names and click "Create":

09 VS 2019 ProjectNameDefaults.JPG

 

The full editor will open with sample "Hello World" program

10 VS 2019 HelloWorldCode.JPG

 

 

In the Debug menu choose "Start Debugging" or Press F5:

11 VS 2019 DebugF5.JPG

 

 

A plain vanilla text window should open to display the output

12 VS 2019 ConsoleWindow.JPG

 

 

If you get this far, we can presume your IDE works.

Hurray!

Share this post


Link to post
Share on other sites

Week 01

I encourage everyone to note the differences between the default Hello World program that the instructor's IDE creates and the one that Visual Studio creates.

Share this post


Link to post
Share on other sites

Week 02

At Thursday's meeting we showed our working "Hello World" programs and experimented with the editor environment.

Two points about Visual Studio :

First... You can have multiple "projects" in your "solution" so all your assignments can be available at once without having to close and reload separate "solutions" or projects

You can add a new project to your current solution by right-clicking on the solution title>Add>New Project

AddPRJ.jpg

 

To get the project code visible in your editor window you may need to drill down to the .cpp file in the "source files" folder under the project name and double click on it.

multiplePRJs.JPG

 

You can switch between them with the tabs at the top of the editor window, BUT.... that doesn't tell Visual Studio which one to compile when  you do Debug (F5).

To do that , RMB on the project name and choose "Set as startup project"

SetAsStartup.jpg

 

 

Second... Visual Studio flags potential errors in your code with yellow or red bars in the text editor, but it doesn't immediately clear those to green if you fix them. Doing a Debug (F5) will force it to re-examine your code but then you have to wait for the compile to finish.

Instead you can RMB on your project title and choose Analyze>Run Code Analysis... to force it to re-consider the flagged errors.

RunAnalysis.jpg

 

 

Assignment for next week. Two chapters!

Sections 5 (Outputting Text) and 6 (Variables) are both quick and easy.

Watch the lectures. I strongly suggest having Visual Studio open while you watch the lecture so you can type stuff in and try it out as he introduces it. There isn't much to type in so it is easy to do.

 

Assignment Chapter 5 Outputting text

You can do anything you want to demonstrate outputting text but... at the top...output two lines of dialog from a movie
 

INTERIOR. SPACESHIP.

TOUGH GUY: I have a bad feeling about this.
SIDEKICK : Rawr.  

The rest of us will try to guess the movie.

 

Assignment Chapter 6 Variables

Create a program with named variables in which you give it your birth year, the current year and it calculates your age.

The output might look like this...

Birth year: 1492
Current year: 2001
Age: 509

 

If you have questions... ask!

Share this post


Link to post
Share on other sites

hmmm...

Did I log in to the wrong Hangout?

 

Sorry I missed you guys.

 

Share this post


Link to post
Share on other sites
21 minutes ago, Rodney said:

hmmm...

Did I log in to the wrong Hangout?

 

Sorry I missed you guys.

 

We missed you too!

It's the same Hangout as the one listed at Live Answer Time.

 

Share this post


Link to post
Share on other sites

I'll be more careful next week.

I blame changing from Central to Mountain time for my confusion.

Apparently I arrived too early and then waited to long to try again.

 

While waiting I was playing with C++ code so all was not lost.  ;)

 

Share this post


Link to post
Share on other sites

la Schedule...

Quote

 

11 pm Eastern time

10 pm Central time

9 pm Mountain time

8 pm Pacific time

7 am Friday Serg time

 

 

Share this post


Link to post
Share on other sites

I take back some of what i said about about Analyze>Run Code analysis...

It is possible to run that while there is a mistake and get both an error flag and a green bar next to it. So what does the green bar indicate?

Errorflag.JPG

Share this post


Link to post
Share on other sites
37 minutes ago, robcat2075 said:

I take back some of what i said about about Analyze>Run Code analysis...

It is possible to run that while there is a mistake and get both an error flag and a green bar next to it. So what does the green bar indicate?

Errorflag.JPG

Try rebuilding the project...that usually does the trick. Technically, once built you shouldn't have to do it again as vs is "supposed" to do it for you, but as a best practice I always follow the workflow of code, build, test run.

Share this post


Link to post
Share on other sites
2 minutes ago, fae_alba said:

Try rebuilding the project...that usually does the trick. Technically, once built you shouldn't have to do it again as vs is "supposed" to do it for you, but as a best practice I always follow the workflow of code, build, test run.

If i rebuild that project while "using" is misspelled as "usin" it will create what you see above, the error icon and the green bar next to it.

The error icon makes sense, the green bar does not... or it means something other than "correct"

Share this post


Link to post
Share on other sites

Serg had a question that I didn't answer well during our meeting.

Quote

what is <iostream>?

The Instructor hasn't really explained it yet. He just puts it there says that we need it, and maybe it will be explained later.

 

<iostream> means "input output stream" and is code and programming  that other people have done that makes basic input/output possible.

Somewhere in all of this Visual Studio is a file that is <iostream>

Putting this line in our program...

#include <iostream>

...is a short way for us to use their work without having to copy and paste their entire source code into our program.

When we go to compile our program, it gets compiled too and used with our program.

Is that about right, Paul?

Share this post


Link to post
Share on other sites
On 5/10/2019 at 4:45 PM, robcat2075 said:

If i rebuild that project while "using" is misspelled as "usin" it will create what you see above, the error icon and the green bar next to it.

The error icon makes sense, the green bar does not... or it means something other than "correct"

"This is an indication of what has been edited.Green means unchanged since last build (save technically, but files are saved every time the project is built), yellow meansedited. No color means that the file is unchanged since opening the file."

Share this post


Link to post
Share on other sites
On 5/10/2019 at 5:48 PM, robcat2075 said:

Serg had a question that I didn't answer well during our meeting.

The Instructor hasn't really explained it yet. He just puts it there says that we need it, and maybe it will be explained later.

 

<iostream> means "input output stream" and is code and programming  that other people have done that makes basic input/output possible.

Somewhere in all of this Visual Studio is a file that is <iostream>

Putting this line in our program...


#include <iostream>

...is a short way for us to use their work without having to copy and paste their entire source code into our program.

When we go to compile our program, it gets compiled too and used with our program.

Is that about right, Paul?

When you add an include statement it allows you to execute external code. Think of it as resuable external subroutines. Some libraries , like iostream include essential functions for displaying and capturing input/output to/from some device. So in short...you are correct!

Share this post


Link to post
Share on other sites

Thanks, Paul!

Share this post


Link to post
Share on other sites

I enjoyed the meeting tonight and the problem solving and the movie guessing.  i will post a thread for next week soon.

MovieLines.jpg

Share this post


Link to post
Share on other sites

Sorry that I missed the session. I got wrapped up in some other activities. I did the assignments, though. Eclipse doesn't open a separate console window, so here's a screenshot of the console panel:

Screen Shot 2019-05-17 at 2.11.20 AM.png

...and the variables assignment:

Screen Shot 2019-05-17 at 2.17.53 AM.png

Robert: I'm pretty sure the ASCII-art image reference is from 2001: A Space Odyssey.  I'm not sure where the quote comes from, though. Is that from the same film? I tried watching that years ago when I was studying animation. I couldn't stay awake, though I don't know if that's because of the film or something else. Whatever the case I don't recall much about it.

 

Share this post


Link to post
Share on other sites

Justin,

We definitely missed you.

For your movie reference I will guess... "Tron".

 

My movie reference:

INTERIOR:  OTTO'S SMITHY SHOP
FRIAR: Now see here you, you evil flint hearted...
SHERIFF: Now, now, now, now.  Save your sermon preacher.  It ain't Sunday ya know.

 

Share this post


Link to post
Share on other sites

That's totally a chimpanzee beating the snot out of a pile of bones with a bone. Although Mel brooks' version was much more entertaining!

Share this post


Link to post
Share on other sites

Robert: no idea what that movie reference is. There are plenty of popular movies I haven't seen, though.

Share this post


Link to post
Share on other sites

When i look at the course outline on Udemy, "Resources" only appear for chapters 12 and later.

However you can find the source code for "Outputting Text" and "Variables" on this page...

https://github.com/caveofprogramming/cplusplus-beginners/wiki/C-Plus-Plus-for-Beginners-Tutorial

they are in .cpp files which you can load in a text editor. If you don't like flipping between screens on one monitor when typing in his code you could print these out to view hard copy instead.

 

Week 03

Week 03 had posts that overlapped week 02 and week 03 so for clarity I will just link to the original thread rather than merge it with this one.

https://forums.hash.com/topic/49082-c-study-group-week-03/

 

Share this post


Link to post
Share on other sites

Week 04

For this week we are doing

  • 09 Binary numbers (very short lecture)
  • 10 Integers (intro to different sizes and how to find MIN and MAX values)
  • 11 Floating Point (fractional numbers that are not exact!)

project ideas:

#9 is just a lecture, no assignment for that

#10 Find and print out the MAX and MIN values for each of the common integer types. At 4:41 he shows you a table of all the MIN and MAX keywords.

#11 get the user to input some numbers, use them in a floating point calculation, display the result in both "fixed" and "scientific" notation

 

Share this post


Link to post
Share on other sites

Week 05

12 - Char and Bool variables.  Boolean variables let you store a TRUE/FALSE value in a named variable, for better program legibility I presume.

13 - IF.  Finally we can write programs that make decisions!

 

Ideas for IF projects...

  • Ask the user to input a number, then tell the user something about that number, like IF it is even or odd, positive or negative, how many digits it has...
  • A guessing game where the computer tells the user IF he has guessed a number to within a certain range (without going over?).
  • A simple "21" game where the computer deals you two card values and you decide IF you want one more card to try to beat the dealer's card total. Then it tells you IF you win.
  • anything else that uses IF

If you are making games you will find rand(), srand() and the modulo operator (%) useful.

This page tells how to use the random number functions.

 

 

Share this post


Link to post
Share on other sites

Week 06

Week 6 will be

14. If-Else

15 If-Else if-Else

It occurs to me that  one project idea might be to simply rework last week's "If" project to make use of the new Else and Else If powers. I'm sure mine would benefit from that.

But the project could be anything that has to account for more than a simple binary choice.

What to feed Birds/Cats/Dogs/Snakes

What to do in Fire/Famine/Flood/Plague

??

Here is the code for my simple BlackJack game.  I think you can use it by starting a new Console Project and then just replacing the default code with the text in this file.

RCH_BlackJack.cpp

 

Share this post


Link to post
Share on other sites

Roger had a question last night about why there isn't a semi-colon after the first line of an IF statement, like this

if (dealerTotal > 21) {
        dealerOverLimit = true;
    }

 

I think the reason is that the "statement" isn't really finished after the first line.

The complete generic form is

if (condition) { stuff that happens if condition is true}

but for clarity and readability it is spread over several lines.

The stuff that happens that is nested between the brackets will have semi-colons after each of its lines, however.

 

Question for Paul... why dont' we need a semicolon after the last bracket of the If statement?

 

 

Share this post


Link to post
Share on other sites

Week 07

(I have merged our previous threads into this one)

For week 07 we are doing

16 Comparing Floats. This is just an informational talk on the impossibility of doing an == comparison on floating point numbers. No project

17 C++ conditions. This talks about how to combine comparisons for more specific decision making including using logical AND and OR and NOT

18 While Loops. Finally we can get the program to do something more than once in a single run!

Ideas for projects?

 

 

Share this post


Link to post
Share on other sites

Week 08

We are looking at

19 Do While loops

20 For Loops

Share this post


Link to post
Share on other sites

Here is a curiosity.

I've used "cin" to get a user input and it is flagged as an error

"cin" is ambiguous

image.png

 

The program still compiles and works as expected, but for some reason VS thinks there is an error there.

Share this post


Link to post
Share on other sites

I  looked on the web and found that other people have had this very same error situation and they decided it was a fault in "Intelli-sense" which is the VS tool which tries to pre-check your code for you.

You can turn Intelli-sense off somehow, but it won't stop you from trying to compile a program if you want to anyway. If your errors are real errors, the compiler will tell you. 😀

I got my Do-While and For program running. I will see you all tonight!

Share this post


Link to post
Share on other sites

Ideas of shapes you could try to draw on a grid with nested For loops

  • sine wave
  • saw tooth wave
  • triangle wave
  • a rectangle
  • a swiss cross
  • a right triangle
  • an isoceles triangle

??

Basically anything you can reduce down to a test of whether the pixel is inside or outside the shape could be drawn on a grid.

Share this post


Link to post
Share on other sites

Loops...

A loop is for some some set of steps you want to repeat. A For-loop is good for when you know how many times you will want to repeat the set of steps.

For example, If i had a string that was 20 characters long and i wanted to convert it all to UPPER CASE, i might use a for-loop that incremented a counter, x, from 0 to 19, and inside the loop I'd put some code that looks at the xth character of the string and swaps in the uppercase version of whatever letter it finds in that xth place.

After the 0 through 19  iterations of that for-loop, all the characters in the string will have gotten converted by that code inside the loop that looks at just one character.

 

A nested loop is for when you have some set of steps you want to repeat, and those steps include some second set of steps that have to be repeated some number of times within each iteration of the first set of steps.

A classic case some sort of data on a grid

Suppose you wanted to create this on a grid that is 9 wide by 5 high

....X....
...X.X...
..X...X..
.X.....X.
X.......X
 

 

I would approach this in small pieces.

I might start by making a loop with a counter i that goes from from 0 to 4 and I'll put some simple output inside it so i know if it is working or not.

#include <iostream>
using namespace std;

int main()
{
	for (int i = 0; i < 5; i++) {// this loop will increment from 0 to 4

		cout << "dummy text" << endl; //place holder for code to be added later
	}

	return 0;
}

 

If that doesn't print out "dummy text" five times, i will fix that before I go any further.

dummy text
dummy text
dummy text
dummy text
dummy text

 

 

Then I might insert another loop inside the first one that increments a counter j from 0 to 8

#include <iostream>
using namespace std;

int main()
{
	for (int i = 0; i < 5; i++) {// this loop will increment form 0 to 4

		for (int j=0; j < 9; j++) {//this loop increments from 0 to 8
			cout << "." << flush;

		}
	}

	return 0;
}

This is the output

............................................. 

I used "flush" so the characters wouldn't each be on a different line, but I really wanted five lines.

i add an "endl" right after the end of the inside loop to force a line feed before the outside loop executes the inside loop again...

#include <iostream>
using namespace std;

int main()
{
    for (int i = 0; i < 5; i++) {// this loop will increment from 0 to 4

        for (int j=0; j < 9; j++) {//this loop increments from 0 to 8
            cout << "." << flush;

        }
        cout << endl;
    }

    return 0;
}

 

That puts the output of each pass of the inside loop on a new line...

.........
.........
.........
.........
.........

 

 That is a working nested loop that we have now.

 

(to be continued...)

 

 

 

Share this post


Link to post
Share on other sites

the above code successfully uses nested loops to print a 9x5 grid of dots

 

However, to get the design we want,  the code needs to print Xs sometimes instead of all dots.

At every grid point the code will need to test whether it should print an X instead of a dot.

....X....
...X.X...
..X...X..
.X.....X.
X.......X

 

The design is an intuitively obvious shape to look at but not so obvious to translate into a single test the code can do at every grid point.

The simplest test is for the first X because it is in the middle of the line.

At each dot we can test if it is the middle point by testing if our current j count equals half the width of the grid

            if (j == (9/2)) {
                cout << "X" << flush;
            }

(Yes, i know 9/2 does not equal any of the values that j goes through, but apparently C++ rounds it to 5 for us)

We include an else to catch all the other cases when that test doesn't come up TRUE

            else {
                cout << "." << flush;
            }

The above six lines  replace the simple dot-every-time code in the last version...

cout << "." << flush;

The output looks like this...

....X....
....X....
....X....
....X....
....X....

In our desired result, the Xs are offset by one away from the center with each successive line.

Since our i counter increments by one for each line we can use that to inform our test.

Instead of testing if j equals half the width of the grid, we test if it equals half the width... plus the current i count.

This new if test replaces the old one.

if (j == (9/2)+i) 

 

Since i was zero the first time through the loop, the first line of the new output is the same as before. Then the X gets place one space farther right on each line after that.

....X....
.....X...
......X..
.......X.
........X

 

To be continued...

 

 

 

 

 

Share this post


Link to post
Share on other sites

I forgot to mention earlier that we are using this week to keep looking at  Do-While and For

Share this post


Link to post
Share on other sites

For loop continued...
 

The program so far only prints the right side of our wedge shape.

if (j == (9/2)+i)

... is only testing for Xs that lie more than halfway past the center. The other Xs that lie before the center could be tested for by subtracting i from our half-width calculation instead of adding it...

if (j == (9/2)-i)

 

If we substitute that test into the existing program we get this output...
 

....X....
...X.....
..X......
.X.......
X........

 Notice that the first line is the same as before because i is zero and subtracting zero is the same as adding zero.

 

In order to get both sides of our wedge, we need to test every space for both the + and the - case.

One way is to combine them into one IF test with a logical OR so that if either one is true, the IF is true...

if (j == (9/2)+i   ||   j == (9 / 2) - i)

(the two vertical bars are OR in C++)

 

that will get us success...

....X....
...X.X...
..X...X..
.X.....X.
X.......X

 

The other way is to break one of the tests into its own Else-if clause

The complete program looks like this...

#include <iostream>
using namespace std;

int main()
{
	
	for (int i = 0; i < 5; i++) {// i counts vertical position. Increments from 0 to 4

		for (int j = 0; j < 9; j++) {// j counts horizontal position. Increments from 0 to 8

			if (j == (9/2)+i) { // test if j equals half the width PLUS the current value of i 
				cout << "X" << flush;
			}
			else if (j == (9 / 2)-i) {// test if j equals half the width MINUS the current value of i
				cout << "X" << flush;
			}
			else {                     // everything that doesn't meet above tests gets a dot
				cout << "." << flush;
			}
		}
		cout << endl; // force linefeed after the horizontal has reached its limit
	}

	return 0;
}

 

But that's not all!

(to be continued...)

 

 

 

Share this post


Link to post
Share on other sites

During recent C++ meeting I had mentioned how some changes to C++ (in release 20) might pave the way for some optimization.

While most programs do not use C++ release 20 (it seems most/many are at release 14 or earlier) it's interesting to see where the emphasis is being placed as that tends to show what areas are of interest to programmers who run up against obstacles and are looking for ways to improve C++ code.

 

https://en.cppreference.com/w/cpp/range

 

Note:  The release number is the same as the year of release.  Therefore C++ 20 is currently released in early form.

 

Share this post


Link to post
Share on other sites
1 hour ago, Rodney said:

During recent C++ meeting I had mentioned how some changes to C++ (in release 20) might pave the way for some optimization...

Those are interesting. I've never needed such things but now that I see them i can imagine circumstances where they would be useful.

I'm not sure I understand "dangling".

I wonder how long it takes for these additions to the language to get into real compilers.

 

 

Share this post


Link to post
Share on other sites

If I understand correctly 'dangling' refers to a pointer/references to a range of data no longer there.

Actual code to work with this... um...er... I'll need to do some R&D on that!

 

 

 

Share this post


Link to post
Share on other sites

Meeting tonight!

Same C++ time!

Same C++ channel!

Share this post


Link to post
Share on other sites

Ideas for nested loop programs:

  • get two numbers from the user and print a grid of Xs, using the numbers for the height and width dimensions.
  • the above program but with Xs only in the outer squares
  • the above program but with just a diagonal line of Xs from upper left corner to lower right corner
  • Below is a two-dimensional array already initialized to Xs and spaces. Write a program to print it out.
  • the above program but flip the spaces to Xs and the Xs to spaces.

 

string grid[4][5] = {
        {" "," "," ","X","X"},
        {" "," ","X","X","X"},
        {" ","X","X","X","X"},
        {"X","X","X","X","X"}
    };

 

Share this post


Link to post
Share on other sites

Week 09

  • Break and Continue
  • Arrays - Lists of Data

The last few lessons have been about the essential data processing structure... Loops

Review of Loops

  • Do...  loops a section of code if a "condition" is true and until it turns false. If the condition is false at the outset, the loop is skipped
  • Do - While... does the loop code once before the condition is tested. The condition can be false at the outset and the loop will still get one play.
  • For... uses a counter (an "index") to decide how many times a loops is executed. The index's value is often used inside the loop.

Break and Continue offer ways to exit midway through a loop

  • Break... will skip any more code before the end of the loop and cause the program to regard the loop as done.
  • Continue... will also skip any more code before the end of the loop, but then it goes to the top of the loop to continue looping.

 

Arrays... are a set of variables with the elements of the set getting numbers to differentiate them instead of different names.

The For loops, with their built-in counters, are useful for stepping through the numbered elements of an array in an orderly fashion.

Share this post


Link to post
Share on other sites

There is a tiny red dot at the lower right corner of your Visual Studio 2019 that tells you there are updates available. I recommend you get those. Mine was about 1.6Gb so do ti when you have time to let the computer sit.

There is some sort of collaboration option in VS where we can write on each other's code in real time(?).

Paul, do you know how this works?

Share this post


Link to post
Share on other sites
4 hours ago, robcat2075 said:

There is a tiny red dot at the lower right corner of your Visual Studio 2019 that tells you there are updates available. I recommend you get those. Mine was about 1.6Gb so do ti when you have time to let the computer sit.

There is some sort of collaboration option in VS where we can write on each other's code in real time(?).

Paul, do you know how this works?

Never tried Microsoft's collaboration. I'll have to look I to it a bit. I'm wondering if they are somehow leveraging Skype to make it work......

Share this post


Link to post
Share on other sites

Here is an interesting addition in  the latest update:

Quote

atomic<floating-point>

I have no idea what that is.

Share this post


Link to post
Share on other sites

Meeting tonight!

Share this post


Link to post
Share on other sites

Week 10

  • Arrays
  • Multi-dimensional arrays

The most common multi-dimensional array is the two-dimensional array, which is like a grid.

I've been tinkering with a tic-tac-toe program that is built around a 3x3 two-dimensional array that stores an X or an O in each space of the grid.

But at the beginning of the game there are no Xs or Os so i store numbers 0-8. You can initialize a multi dimensional array by putting values in nested brackets

    string gameGrid[3][3] = {
        {"0","1","2"},
        {"3","4","5"},
        {"6","7","8"}
    }

 

Before each turn, a couple of nested loops prints out the current contents of the array ...

        //print 3x3 array...
        for (int i = 0; i < 3; i++) {
            cout << "\t" << flush; // tab before each horizontal line
            for (int j = 0; j < 3; j++) {
                cout << gameGrid[i][j] << "  " << flush;
            }
            cout << endl;//linefeed after each horizontal line
        }

 

The player chooses a number in the grid to indicate the space he want to play.

	0  1  2  
	3  4  5  
	6  7  8

 

 

Share this post


Link to post
Share on other sites

Roger found a very interesting article on programming a quick Depth of Field effect...

http://tuxedolabs.blogspot.com/2018/05/bokeh-depth-of-field-in-single-pass.html

A:M has a quick DOF effect but its result is rather small.

Perhaps when we get more C++ under our belt we might look at trying to implement this new method... as a Post Effect? Like Fake AO?

Share this post


Link to post
Share on other sites

meeting tonight!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...